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.
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.
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.
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
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
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.
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.
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.
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
Original commit message from CVS:
* gst/gsttypes.h:
get rid of GST_O_READONLY, GST_FILE_MODE_READ and
GST_FILE_MODE_WRITE, I don't want them in the exported headers. It
just causes support madness
* gst/elements/gstfilesrc.c: (gst_filesrc_open_file):
make it work without this
* gst/indexers/gstfileindex.c: (_file_index_id_save_entries),
(gst_file_index_commit):
glib IO channels don't want binary mode
* testsuite/bytestream/filepadsink.c: (main):
* testsuite/bytestream/test1.c: (read_param_file):
use "rb" instead of GST_FILE_MODE_READ, it works on POSIX systems
Original commit message from CVS:
* gst/gstclock.h:
GST_SECOND shouldn't cause a conversion to unsigned.
* testsuite/clock/.cvsignore:
* testsuite/clock/Makefile.am:
* testsuite/clock/signedness.c: (main):
make sure it never will again
Original commit message from CVS:
2004-07-09 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* testsuite/threads/Makefile.am:
* testsuite/threads/threadg.c:
added test to check if problem when removing all elements from a
GstThread before setting GstThread state to NULL
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c:
(chain_recursively_migrate_group), (create_group),
(schedule_group), (gst_opt_scheduler_pad_link),
(group_elements_set_visited), (element_get_reachables_func),
(element_get_reachables), (group_can_reach_group), (debug_element),
(rechain_group), (group_migrate_connected),
(gst_opt_scheduler_pad_unlink):
* testsuite/schedulers/Makefile.am:
Implemented group splitting and rechaining.
Fixes 143777 and 143777-2 in the testsuite.
Original commit message from CVS:
* configure.ac:
* gst/gstvalue.c: (gst_value_compare_enum),
(gst_value_serialize_enum), (gst_value_deserialize_enum),
(gst_value_can_compare), (gst_value_compare):
* testsuite/Makefile.am:
Fix enum serialization, deserialization, comparison in caps, add
a test to ensure that this continues working in the future.
Original commit message from CVS:
* tests/.cvsignore:
* tests/Makefile.am:
* tests/mass_elements.c: (gst_get_current_time), (main):
add simple benchmark to test various speeds of fakesrc ! identity !
identity ! ... ! fakesink.
Usage: mass_elements [num_identities] [num_buffers]
If not specified they default to 1000.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_get_caps):
throw an error if the getcaps function does not return a subset of
the template caps.
* libs/gst/bytestream/filepad.c: (gst_file_pad_chain):
make disconts without position info an error in debugging
* tests/spidey_bench.c: (handoff), (main):
don't count first try when averaging
Original commit message from CVS:
* testsuite/schedulers/.cvsignore:
* testsuite/schedulers/Makefile.am:
* testsuite/schedulers/143777-2.c: (main):
add test for opt breakage in bug #143777
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_call_chain_function):
check for if we were unlinked while inside the chainfunction (fixes
entrygthread having issues with #143777)
* testsuite/schedulers/143777.c: (main):
* testsuite/schedulers/Makefile.am:
add a test for that fix
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_set_int_range):
test that start is smaller then end
* libs/gst/bytestream/Makefile.am:
* libs/gst/bytestream/filepad.c:
* libs/gst/bytestream/filepad.h:
add GstFilePad - a pad that behaves like a FILE*
* testsuite/bytestream/.cvsignore:
* testsuite/bytestream/Makefile.am:
* testsuite/bytestream/filepadsink.c:
test for the GstFilePad
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_structure_simplify):
don't print error messages when there is no error
* gst/gstvalue.c: (gst_value_compare_int_range):
compare the second value, too
* testsuite/caps/Makefile.am:
* testsuite/caps/random.c: (assert_on_error), (main):
add tests to make sure the two things above are checked for
Original commit message from CVS:
* testsuite/debug/commandline.c: (main): Call ./commandline, not
argv[0]. Calling yourself is probably not the best way to
construct a test like this, btw.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_iterate_func), (gst_bin_iterate):
don't
* gst/schedulers/entryscheduler.c: (safe_cothread_switch),
(safe_cothread_destroy),
(gst_entry_scheduler_remove_all_cothreads),
(gst_entry_scheduler_reset), (_remove_cothread),
(gst_entry_scheduler_state_transition):
hold off cothread destruction if we're not in main cothread
* configure.ac:
* testsuite/Makefile.am:
add new test dir
* testsuite/schedulers/.cvsignore:
* testsuite/schedulers/Makefile.am:
add tests
* testsuite/schedulers/relink.c: (cb_handoff), (main):
check relinking and adding/removing elements from a running pipeline
* testsuite/schedulers/unlink.c: (cb_handoff), (main):
check unlinking in a running pipeline
* testsuite/schedulers/unref.c: (cb_handoff), (main):
check unreffing a running pipeline
* testsuite/schedulers/useless_iteration.c: (main):
check iterating a pipeline that contains running threads works
Original commit message from CVS:
* gst/gstvalue.c: (gst_strtoll), (CREATE_SERIALIZATION),
(CREATE_USERIALIZATION), (_gst_value_initialize),
(gst_value_compare_float), (gst_value_serialize_float),
(gst_value_deserialize_float), (gst_value_compare_enum),
(gst_value_serialize_enum), (gst_value_deserialize_enum):
add serialization and comparison functions for long, int64, enum and
float values
* gst/gstvalue.c: (gst_value_serialize), (gst_value_deserialize):
use best serialization function in type hierarchy instead of only a
matching one. This is required for enums to work.
* gst/parse/grammar.y:
use gst_caps_deserialize
* testsuite/parse/Makefile.am:
parse1 now works
* testsuite/parse/parse1.c: (main):
remove aggregator check, aggregator is broken, this test works now
but fails because of bug #138012
* testsuite/parse/parse2.c: (main):
s/xvideosink/xvimagesink - this test looks a lot like we should
disable it
Original commit message from CVS:
* tests/Makefile.am:
* tests/spidey_bench.c: (handoff), (main):
add benchmark to test how long spider needs to create a pipeline
Original commit message from CVS:
* gst/parse/grammar.y:
fix assert to not trigger when there's no error argument
* gst/parse/parse.l:
fix definition of caps to allow more than two structures
* testsuite/caps/Makefile.am:
* testsuite/caps/renegotiate.c: (main):
it's sinesrc and works in that case
Original commit message from CVS:
The "once more, with feeling" check-in.
* testsuite/caps/Makefile.am: dist caps_strings
* testsuite/caps/renegotiate.c: (main): This test triggers a
segfault in the core. Marking as failing.
Original commit message from CVS:
* testsuite/caps/deserialize.c: (main): Fix problems noticed
by the build bots.
* testsuite/caps/renegotiate.c: (main): Same.
Original commit message from CVS:
* configure.ac: Link plugins with libgstreamer and dependent
libraries
* testsuite/caps/Makefile.am:
* testsuite/caps/caps_strings:
* testsuite/caps/deserialize.c: (main): Add a little test to slog
through a file of caps strings and test each one
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_structure_subtract_field),
(gst_caps_structure_subtract), (gst_caps_subtract),
(gst_caps_structure_figure_out_union),
(gst_caps_structure_simplify), (gst_caps_do_simplify):
fix simplifying and subtracting not working correctly with optional
properties
solve assorted problems that make it now simplify ebven more
* docs/gst/tmpl/gstcaps.sgml:
* gst/gstcaps.h:
make gst_caps_do_simplify return a bool to indicate if it simplified
* testsuite/caps/simplify.c: (main):
add more checks. The tests is quite a bit useless right now because
the core is heavily simplifying itself.
* testsuite/caps/caps.h:
fix caps to contain all optional properties
Original commit message from CVS:
* docs/gst/tmpl/gstcaps.sgml:
* docs/gst/tmpl/gstfilesrc.sgml:
* docs/gst/tmpl/gststructure.sgml:
* docs/gst/tmpl/gstvalue.sgml:
update for recent API changes
* gst/gstcaps.c: (gst_caps_do_simplify):
fix to stop trying with a freed structure
* gst/gstpad.c: (gst_pad_link_fixate):
simplify caps
* gst/gstpad.c: (gst_pad_template_get_caps_by_name):
remove C++ comment
* gst/gstpad.h:
deprecate gst_pad_template_get_caps_by_name, it doesn't work anyway
* gst/gststructure.c: (gst_structure_value_get_generic_type),
(gst_structure_to_string):
keep the correct type when using lists of ranges
* gst/gstvalue.c: (gst_value_list_prepend_value),
(gst_value_list_append_value):
copy the value before adding to the list (d'oh)
* gst/gstvalue.c: (gst_value_subtract_int_range_int),
(gst_value_subtract_int_range_int_range):
handle overflows correctly
* gst/gstvalue.c: (gst_value_subtract_from_list):
fix memleak
* testsuite/caps/caps.h:
add a caps that caused segfaults
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_from_string_inplace):
fix bug when converting from empty string.
* gst/gstcaps.c: (gst_caps_new_any), (gst_caps_new_simple),
(gst_caps_new_full_valist), (gst_caps_copy), (gst_caps_copy_1):
use gst_caps_new_empty to allocate a new caps. Only that function
allocates memory for caps now.
* gst/gstcaps.c: (gst_caps_remove_and_get_structure),
(gst_caps_remove_structure):
add ability to remove one structure (but not to header yet)
* gst/gstcaps.c: (gst_caps_compare_structures),
(gst_caps_simplify), (gst_caps_structure_figure_out_union),
(gst_caps_structure_simplify), (gst_caps_do_simplify),
* gst/gstcaps.h:
add gst_caps_do_simplify that tries to simplify a caps in place.
Deprecate old gst_caps_simplify function.
* testsuite/caps/caps.h:
add caps.h containing a common set of caps to test against.
* testsuite/caps/sets.c: (check_caps), (main):
use it.
* testsuite/caps/.cvsignore:
* testsuite/caps/Makefile.am:
* testsuite/caps/simplify.c: (check_caps), (main):
add test to check correctness and efficency of caps simplification.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_link_negotiate):
refuse to link if the link is not possible
* configure.ac:
* testsuite/Makefile.am:
* testsuite/negotiation/.cvsignore:
* testsuite/negotiation/Makefile.am:
* testsuite/negotiation/pad_link.c: (main):
add test that checks the above behaviour
Original commit message from CVS:
* common/as-libtool.mak: Fine-tune DLL building.
* configure.ac: Link plugins against libgstreamer. Define plugindir
(like gst-plugins)
* examples/plugins/Makefile.am: remove plugindir
* gst/autoplug/Makefile.am: DLL building fixes
* gst/elements/Makefile.am: DLL building fixes. Disable pipefilter on
Windows.
* gst/elements/gstelements.c: Conditionally disable pipefilter.
* gst/indexers/Makefile.am: DLL building fixes
* gst/schedulers/Makefile.am: DLL building fixes.
* libs/gst/bytestream/Makefile.am: DLL building fixes.
* libs/gst/control/Makefile.am: same
* libs/gst/getbits/Makefile.am: same
* testsuite/Makefile.am: New dlopen directory
* testsuite/dlopen/Makefile.am: Tests to check if libgstreamer works
when dlopened.
* testsuite/dlopen/dlopen_gst.c: (main): same
* testsuite/dlopen/loadgst.c: (do_test): same
Original commit message from CVS:
* testsuite/caps/Makefile.am:
* testsuite/caps/filtercaps.c: (main):
add test (that doesn't work right now, but should)
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt: Remove deprecated symbols.
* docs/gst/tmpl/gstinfo.sgml: same
* docs/gst/tmpl/gstutils.sgml: Remove a bunch of bogus crap that
gtk-doc put here.
* gst/gstutils.h: Remove the \ that was confusing gtk-doc.
* examples/queue/queue.c: (main): We iterate pipelines, not
bins. (bug #139996)
Original commit message from CVS:
* testsuite/Makefile.am: define tests_ignore
* testsuite/Rules: Added new tests_ignore, which get compiled,
but not run (generally because they're inconsistent or have
heisenbugs). Now we can ensure all the .c files compile in
testsuite/.
* testsuite/bins/Makefile.am: define tests_ignore
* testsuite/bytestream/Makefile.am:
* testsuite/caps/Makefile.am:
* testsuite/clock/Makefile.am:
* testsuite/debug/Makefile.am:
* testsuite/debug/global.c: (gst_debug_log_one),
(gst_debug_log_two): Fix compilation problem.
* testsuite/dynparams/Makefile.am:
* testsuite/elements/Makefile.am:
* testsuite/ghostpads/Makefile.am:
* testsuite/indexers/Makefile.am:
* testsuite/parse/Makefile.am:
* testsuite/plugin/Makefile.am:
* testsuite/refcounting/Makefile.am:
* testsuite/refcounting/element_pad.c: (main): Don't return leak
results, because it's not calculated correctly.
* testsuite/refcounting/pad.c: (main): same
* testsuite/states/Makefile.am:
* testsuite/tags/Makefile.am:
* testsuite/threads/Makefile.am:
Original commit message from CVS:
* gst/gstbuffer.c: (_gst_buffer_initialize), (gst_buffer_get_type),
(gst_buffer_free_chunk): Added gst_buffer_get_type() and changed
to using it.
* gst/gstbuffer.h: Changed GST_BUFFER_TYPE to gst_buffer_get_type()
* gst/gstcaps.c: (gst_caps_is_fixed_foreach): Buffer is a fixed type
* gst/gstpad.c: (_gst_pad_default_fixate_foreach): same
* gst/gststructure.c: (gst_structure_set_valist),
(gst_structure_from_abbr), (gst_structure_to_abbr): Add vararg
support for buffers.
* gst/gsttag.c: (gst_tag_register): Constify a prototype that was
intended to be const.
* gst/gsttag.h: same
* gst/gstvalue.c: (gst_value_serialize_buffer),
(gst_value_deserialize_buffer), (_gst_value_initialize): Add code
to (de)serialize buffers.
* testsuite/caps/Makefile.am: Add a bit of buffer testing
* testsuite/caps/string-conversions.c: (main):
* testsuite/caps/value_serialize.c: add new test
Original commit message from CVS:
* testsuite/debug/category.c: (main):
* testsuite/debug/commandline.c: (main):
* testsuite/debug/output.c: (main):
fix tests to work again with debugging enabled
Original commit message from CVS:
* testsuite/debug/category.c: (main):
* testsuite/debug/commandline.c: (main):
* testsuite/debug/output.c: (main):
fix tests to work again with debugging enabled
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_union_int_int_range),
(gst_value_union_int_range_int_range), (gst_value_can_union),
(gst_value_union), (_gst_value_initialize): Add some union
implementations. We didn't have any previously.
* testsuite/caps/Makefile.am:
* testsuite/caps/audioscale.c: (gst_audioscale_expand_value),
(gst_audioscale_getcaps), (test_caps), (main): A little test
that is the same as the caps manipulation in audioscale.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_set_element_sched),
(gst_bin_unset_element_sched):
don't add decoupled elements to schedulers - otherwise it's
impossible to control if a link to a decoupled element was already
removed from a scheduler or not.
* gst/schedulers/cothreads_compat.h:
* gst/schedulers/gthread-cothreads.h:
add COTHREADS_TYPE macro. Make do_cothread_set_func a macro so there
is no "unused" warning.
* gst/schedulers/Makefile.am:
* gst/schedulers/entryscheduler.c:
add new scheduler, based on ideas from talking to David and Martin.
It's supposed to be small and correct. Currently it's also slow (but
it's not noticable)
* examples/retag/retag.c: (main):
* testsuite/bytestream/test1.c: (main):
fix missing NULLs at end of variadic functions
* testsuite/elements/.cvsignore:
update
Original commit message from CVS:
* testsuite/elements/Makefile.am:
* testsuite/elements/gst-compprep-check:
add check to make sure gst-compprep works
* testsuite/elements/gst-inspect-check.in:
improve initialization output
* testsuite/gst-inspect-check:
remove old file
Original commit message from CVS:
* gst/gst.c (init_post): call gst_caps_get_type() instead of
_gst_caps_initalize()
* gst/gstcaps.c: Style fixes, stay closer to glib and friends
(_gst_caps_initialize): Remove, in favor for gst_caps_get_type()
* gst/gstcaps.h (GST_CAPS_IS_SIMPLE): Capitalize macro
* gst/gstcaps.h: Clean up
Original commit message from CVS:
2004-02-05 Andy Wingo <wingo@pobox.com>
* gst/gstpad.c (_gst_real_pad_fixate_accumulator):
s/pointer/boxed/.
* gst/gstmarshal.list (VOID:BOXED, BOXED:BOXED): New marshallers.
* gst/gstpad.c (gst_real_pad_class_init): Use a BOXED:BOXED
marshaller for ::fixate, and VOID:BOXED for ::caps-nego-failed,
with the type=GST_TYPE_CAPS. This allows language bindings to know
what kind of data they're dealing with.
* gst/gstcaps.c (_gst_caps_value_init): GBoxed values initialize
to NULL when g_value_init is called. GstCaps, which rolls its own
type implementation, now does the same instead of allocating empty
caps.
(_gst_caps_initialize, _gst_caps_collect_value,
_gst_caps_lcopy_value): Provide collect_value and lcopy_value type
table methods. This allows G_VALUE_COLLECT to work.
2004-02-05 Andy Wingo <wingo@pobox.com>
* configure.ac:
* testsuite/Makefile.am (SUBDIRS):
* testsuite/ghostpads/Makefile.am:
* testsuite/ghostpads/ghostpads.c: A new test for ghost pads.
* gst/gstpad.c (gst_pad_add_ghost_pad, gst_pad_remove_ghost_pad):
These two routines are the only ones that set
GST_GPAD_REALPAD(gpad), the ghost pad list, and the ghost pad's
pad template. They should be made static, depending on ABI needs.
(gst_real_pad_dispose): Handle the case of ghost pads without a
parent. Assert after dealing with ghost pads that the ghost pad
list is empty.
(gst_ghost_pad_class_init): New property added, ::real-pad. Can be
set after creation.
(gst_ghost_pad_dispose): Set ::real-pad to NULL.
(gst_ghost_pad_set_property, gst_ghost_pad_get_property): New
functions. set_property will call add_ghost_pad/remove_ghost_pad
as appropriate.
(gst_ghost_pad_new): All the work is offloaded to g_object_new.
* gst/gstelement.c (gst_element_add_pad): Handle ghost pads as well.
(gst_element_add_ghost_pad): Remove code duplicated from _add_pad.
(gst_element_remove_pad): Handle ghost pads as well.
(gst_element_remove_ghost_pad): Deprecated (could be removed,
depending on API-stability needs).
2004-02-05 Andy Wingo <wingo@pobox.com>
* gst/gstbin.[ch]: (gst_bin_get_by_interface): GTypes are scalars,
of course they're const
Original commit message from CVS:
2004-01-30 Laurent Vivier <Laurent.Vivier@bull.net>
reviewed by Benjamin Otte
parts of the patch submitted in bug #113913
* configure.ac:
use AC_C_INLINE. Use = instead of == with test
* examples/plugins/example.c:
* gst/autoplug/gstspideridentity.c:
* gst/elements/gstfdsrc.c:
* gst/elements/gstfilesrc.c:
* gst/elements/gstidentity.c:
* gst/elements/gstmultidisksrc.c:
* gst/elements/gststatistics.c:
* gst/gstelement.c:
* gst/gstobject.c:
* gst/gstpad.c:
* gst/gstpipeline.c:
* gst/gstthread.c:
don't end enums with a comma
* gst/gstindex.c: (gst_index_compare_func):
do explicit casting to gint
* gst/gsttrace.c: (gst_trace_text_flush):
#define strsize as a macro
Original commit message from CVS:
* configure.ac: Add detection for HAVE_PRINTF_EXTENSION and
GST_PRINTF_EXTENSION_FORMAT_DEFINE.
* docs/random/ds/0.9-suggested-changes: Notes from Company.
* gst/gstcaps.c: (gst_caps_to_string): Add comment.
* gst/gstconfig.h.in: Add define for GST_PTR_FORMAT
* gst/gstinfo.c: (_gst_debug_init), (gst_debug_print_object),
(gst_debug_log_default), (_gst_info_printf_extension),
(_gst_info_printf_extension_arginfo): Add printf extension.
* gst/gstinfo.h: remove G_GNUC_PRINTF, because it doesn't work with %P
* gst/gststructure.c: (gst_structure_to_string),
(_gst_structure_parse_value): Use gst_value_deserialize() and
remove old code.
* gst/gstvalue.c: (gst_value_deserialize_fourcc),
(gst_value_deserialize_boolean), (gst_strtoi),
(gst_value_deserialize_int), (gst_value_deserialize_double),
(gst_value_deserialize_string), (gst_value_deserialize): Implement
a bunch of deserialize functions and gst_value_deserialize.
* gst/gstvalue.h: er, _de_serialize, not unserialize
* testsuite/caps/string-conversions.c: (main): We don't currently
handle (float) in caps, so convert these to (double).
* testsuite/debug/Makefile.am: Add new test for the printf extension
* testsuite/debug/printf_extension.c: (main): same
Original commit message from CVS:
2004-01-18 Colin Walters <walters@verbum.org>
* examples/retag/retag.c: Call gst_init before processing
program args. Add g_assert to _link_many call.
Original commit message from CVS:
* gst/gstcaps.h:
Added gst_caps_is_simple() macro.
* testsuite/caps/caps.c: (test1):
* testsuite/caps/intersect2.c: (main):
* testsuite/caps/intersection.c: (main):
Fixes to make 'make check' work again after removing
gst_caps_is_chained().
Original commit message from CVS:
2004-01-13 Benjamin Otte <in7y118@public.uni-hamburg.de>
* gst/gstclock.c: (gst_clock_class_init), (gst_clock_init),
(gst_clock_set_speed), (gst_clock_set_active),
(gst_clock_is_active), (gst_clock_reset),
(gst_clock_handle_discont):
* gst/gstclock.h:
deprecate old interface and disable functions that aren't in use
anymore.
* gst/gstelement.h:
* gst/gstelement.c: (gst_element_get_time), (gst_element_wait),
(gst_element_set_time), (gst_element_adjust_time):
add concept of "element time" and functions to get/set this time.
* gst/gstelement.c: (gst_element_change_state):
update element time correctly.
* gst/gstelement.c: (gst_element_get_compatible_pad_filtered):
This is a debug message, not a g_critical.
* gst/gstpad.c: (gst_pad_event_default):
handle discontinuous events right with element time.
* gst/gstscheduler.c: (gst_scheduler_state_transition):
update to clocking fixes.
set clocks on elements in READY=>PAUSED. The old behaviour caused
a wrong element time on the first element that started playing.
* gst/schedulers/gstbasicscheduler.c:
(gst_basic_scheduler_class_init):
* gst/schedulers/gstoptimalscheduler.c:
(gst_opt_scheduler_class_init):
remove code that just implements the default behaviour.
* gst/elements/gstfakesink.c: (gst_fakesink_chain):
update to use new clocking functions
* testsuite/clock/clock1.c: (gst_clock_debug), (main):
* testsuite/clock/clock2.c: (gst_clock_debug), (main):
update to test new element time.
* gst/autoplug/gstspideridentity.c: (gst_spider_identity_getcaps):
use _get_allowed_caps instead of _get_caps. This catches filtered
caps correctly.
* testsuite/debug/commandline.c:
update for new GST_DEBUG syntax.
* testsuite/threads/Makefile.am:
disable a test that only works sometimes.
Original commit message from CVS:
2004-01-07 Ronald Bultje <rbultje@ronald.bitfreak.net>
* gst/elements/gstfilesink.c: (gst_filesink_set_location):
Fix for if we pass NULL as property to location.
* gst/elements/gstpipefilter.c: (gst_pipefilter_init),
(gst_pipefilter_handle_event), (gst_pipefilter_chain):
Fix for instantiate-test (see below).
* gst/gststructure.c: (_gst_structure_parse_value):
Fix compile error on gcc-2.96.
* configure.ac:
* tests/Makefile.am:
* tests/instantiate/Makefile.am:
* tests/instantiate/create.c: (create_all_elements), (main):
Add a test that instantiates all elements. This makes it easy to
track dead code for old API/design (like setting event functions
on sink pads and so on).
Original commit message from CVS:
* gst/elements/gsttee.c: (gst_tee_init), (gst_tee_request_new_pad):
Remove usage of gst_pad_proxy_fixate.
* gst/gstcaps.c: (gst_caps_append), (gst_caps_append_structure),
(gst_caps_split_one), (gst_caps_replace):
Add poisoning code.
* gst/gstmarshal.list:
Add pointer__pointer for fixate signal
* gst/gstpad.c: (gst_real_pad_class_init),
(_gst_real_pad_fixate_accumulator), (gst_pad_link_fixate),
(_gst_pad_default_fixate_func), (gst_pad_proxy_fixate),
(gst_pad_set_explicit_caps), (gst_pad_template_new):
Add poisoning code. Add fixate signal on RealPad. Change
set_explicit_caps() to take const GstCaps, like try_set_caps().
* gst/gstpad.h:
* testsuite/caps/Makefile.am:
* testsuite/caps/app_fixate.c: Add a test for the fixate signal
Original commit message from CVS:
merge in tagging
Includes:
- gsttag.[ch] - The definition of GstTagList and tag registering/querying
- gsttaginterface.[ch] - Interface for elements that can handle setting of tags
- updates and merges to gststructure.[ch] and gstvalue.[ch]
- testsuite/tags - some tests for tagging
- bugfixes
- updates to make make distcheck work
- updates the version number to 0.7.2.1
Does not include:
- including tagging stuff in docs
- extensive tests
Original commit message from CVS:
threadb and threadc are unexpectedly passing on my system (glibc2.3.1 and linux-2.6.0-test9). Commenting them out because they are expectedly failing on other systems.
Original commit message from CVS:
Massive patch to make 'make check' work properly. Many compilation
fixes -- everything should compile now. Some tests pass, some
fail; the expected sucess/failure is coded in the Makefile.am's.
gst-register is properly run for both 'make check' and 'make distcheck'.
Much of the common infrastructure is coded in testsuite/Rules.
Original commit message from CVS:
s/GstBuffer/GstData/ in the API where you can pass events. Fix the plugins to deal with that. Fixes#113488. Also includes scheduler patches, and probably fixes some queue bugs relating to events and buffers.
Original commit message from CVS:
kill some memleaks, add ::signal-handoffs property to fakesrc/sink (default FALSE), cache return values of _gst_debug_nameof_funcptr
Original commit message from CVS:
GST_DEBUG reorganization
This is a big diff (ca 450k), containing loads of stuff:
- gstinfo.[ch] complete rewrite
- changing of all GST_DEBUG messages to reflect that change
- reorganization of subsystem disabling
- addition of gstconfig.h.in so we can track the disablings
- <gst/gst.h> does not include <unistd.h> and <config.h> anymore
- documentation updated for gstinfo stuff (build the docs yourself to know what changed)
- bugfixes for making of the docs (files from CVS are not deleted anymore
- testsuite for debugging changes in testsuite/debug
expect breakage
Original commit message from CVS:
destroyed gst_*_destroy in the examples - use gst_object_unref instead - includes some tries to bufixes, most of the tests still fail
Original commit message from CVS:
- Add more --disable options
- fix makefiles to only compile non-disabled features
- some compile fixes.
- removed extratypes, added gsturitype
- make get/set clock on a bin overridable
- some portability fixes for GUINT64
- separate pools from gstregistry.[ch] into gstregistrypool.[ch]
- make gstobject size fixed, even if we disabled load/save
- don't use 'new' as a variable as it is not a valib C++ variable
Original commit message from CVS:
Convert %lld and %llu in printf formats to G_G[U]INT64_FORMAT. Fix
pointer<->int conversion. Fixes warnings on alpha.
Original commit message from CVS:
- major API breakage (one of the last, I promise...)
- GST_PAD_QUERY -> GST_QUERY
- GstPadQuery -> GstQuery
- Move query definitions to gstquery.h to allow for future dynamic
query types.
- remove _pad_handles_* in favour of extra format/event functions to
make the same checks.
- fix elements
- Implemented missing query/event/formats functions in gstelement
Original commit message from CVS:
cleanups in code
fix tests to run and complete if they can
move threadb to failing tests since it doesn't work with basicomega
(crashes in the mmap)
Original commit message from CVS:
bufspeed gives warnings because of volatile discardation
who wrote it, can it be fixed ? what does it actually test ? please
add some description in README
Original commit message from CVS:
This changes an important part of the plugin API, gst_pad_try_set_caps() no longer returns a boolean, it now returns a GstPadConnectReturn, which makes much more sense than a boolean. All plugins have also been changed, so don't worry ;)
Original commit message from CVS:
add comments to show what pipeline is being constructed.
change threadstate3 to be { { fakesrc ! fakesink } } which doesn't change state once it has started
Original commit message from CVS:
added a test which shows a problem with state changes when the toplevel bin is a thread.
there is some kind of deadlock. It would be good if wingo or wtay could have a look.
Original commit message from CVS:
* fixups in the prop view/controller
* compilation fixes in the player
* add gst-editor to gst-all
* fixes to adder to comply with new osssink sync issues
* alsa fixes, although still 100% cpu is used, yum
* reenable locking of threaded elements, seems to work fine here
* fix a makefile in examples/plugins
Original commit message from CVS:
* fix refcounting tests so that they compile and run, but they fail currently:
gst leaks obscene amounts of memory ;)
* fix plugin loading test so that it only refers to plugins within the gstreamer/
tree
* store gst plugin paths in the registry
* is GST_REGISTRY is set, only use the user registry with the PLUGIN_PATH explictly
specified by the user
* all tests should pass now except refcounting
Original commit message from CVS:
* added a get_perms_func to gstxmlregistry that will set _WRITABLE and _READABLE
as appropriate
* added an object property for location so that we can do some cleanup and initialization
Original commit message from CVS:
* GST_PLUGIN_PATH gets split into the user registry
* some debugging output in registry rebuilding
* don't go into =build, =inst, etc
* i really don't know what the current idiom is for the plugin test suites, disabling for now
still pending issues: what to do when other plugin paths are passed on the command
line for existing registries. if the existing registries were built against those
paths, the time checks work, but if not they will need to be rebuilt. i have a feeling
they should be rebuilt in any case, but it's a tricky issue.
Original commit message from CVS:
Totally rewritten registry handling.
- move the registry save/load code into a gstregistry subclass, this
will make it possible to use other registries (flat file, web based,
RDBMS type, etc..)
- a simple GMarkup xml registry is implemented
- use standard statically linked plugins for core elements.
- GstPlugin has a very well defined set of functions now
A little bytestream hack..
Added more info to -inspect.
Some more debugging info for clocking.
Small cleanups
I use ./gst-register --gst-plugin-path=/opt/src/sourceforge/gst-plugins/gst-libs:/opt/src/sourceforge/gst-plugins/
to register core and gst-plugins now.
Original commit message from CVS:
Fix the tests so that builds that are not --enable-plugin-builddir can register
the plugins from the uninstalled gstreamer directory. There is some small amount of voodoo
here.
Also, add gst-inspect-check to gstreamer/testsuite, where it probably belongs
Original commit message from CVS:
commit to make gstreamer follow the gtk function/macro naming conventions:
GstPadTemplate <-> gst_pad_template <-> GST_PAD_TEMPLATE
and the same for *factory and typefind.
Original commit message from CVS:
* new parser that uses flex and bison
- doesn't do dynamic pipelines yet...
* added GErrors to the gst_parse_launch[v] api
* added --gst-mask-help command line option
* fixed -o option for gst-launch
* GstElement api change:
- gst_element_get_pad
- gst_element_get_request_pad, gst_element_get_static_pad
- gst_element_get_compatible_pad
- gst_element_get_compatible_static_pad, gst_element_get_compatible_request_pad
- gst_element_[dis]connect -> gst_element_[dis]connect_pads
- gst_element_[dis]connect_elements -> gst_element_[dis]connect
* manual update
* example, tool, and doc updates for the api changes
- no more plugin docs in the core docs, plugins require a more
extensive doc system
Original commit message from CVS:
* removal of //-style comments
* don't link plugins to core libs -- the versioning is done internally to the plugins with the plugin_info struct,
and symbol resolution is lazy, so we can always know if a plugin can be loaded by the plugin_info data. in theory.
Original commit message from CVS:
* add two apis:
* gst_element_connect_elements_many (elem1, elem2, ...)
- calls gst_element_connect_elements() in order
- should be called gst_element_connect_many, but we need to rename gst_element_connect_elements first
- simplifies common-case code
* gst_bin_add_many (bin, elem1, ...)
- calls gst_bin_add on all of the elems
- again, simplifying common code
Original commit message from CVS:
miscellaneous fixes, added gst_pad_unset_sched() api.
although I unref the old pipeline and the cothread context gets freed in dynamic-pipeline.c,
I still get segfaults.
Original commit message from CVS:
I've removed autoplug from build and dist since it seems to need Gnome and
we agreed not to have that in the core.
Can someone take a look at it ? I couldn't get it to work anyway ;)
It should probably either be rewritten without gnome or moved to another
module
Original commit message from CVS:
added a slightly new twist in dynamic-pipeline.c: I actually iterate the first pipeline.
this causes a segfault (at least on my machine, i've been having link issues today though).
if a scheduler wizard (ahem) could take at glance at this, i'd be eternally grateful :-)
Original commit message from CVS:
* fix doc build for glib2
* remove template files from cvs, they are generated with gtkdoc-mktmpl
* new, cleaner interface to the parser facilities
* cleanups in gstparse.c
Original commit message from CVS:
* s/filter/plugin/
* add $(GST_LIBS) to all plugins
* move Makefile.am things around to a mostly standard layout
* remove HTTP flags/libs from elements since http element moved
Original commit message from CVS:
summary: fix xml in gstreamer
1) make clear distinction between loading xml that actually creates objects and loading xml that just
synchronizes properties with objects. moved most of gst_element_restore_thyself functionality to
gst_xml_make_element. this new function name can change if it sucks.
2) many various fixes. createxml and runxml work now.
3) doc updates.
4) GstSignalObject is stil broken. i have no idea what it's supposed to do.
Original commit message from CVS:
fixes for make distcheck
does GST_ELEMENT_IS_COTHREAD_STOPPING still exist ?
and if so, how should it be found by the bytestream test ?
Original commit message from CVS:
fixes to make distcheck work
changed registry out of date to warning to allow tests to continue regardless (any better suggestions much appreciated)
Original commit message from CVS:
* removed gstreamer.m4 (packages should use pkg.m4)
* guilaunch depends only on gtk, not libglade-gnome
* removed an unnecessary check in dynamic-pipeline.c
* attempted to avoid a spurious autoheader run
* gtk2 fixes
* killed a lot of files that automake brings in for us
* killed acinclude.m4, it's autogenerated
Original commit message from CVS:
- use GST_CFLAGS only
- use AM_CFLAGS instead of CFLAGS so user cflags are not overwritten
- use LDADD instead of LIBS (by analogy for <program>_LDADD, look for
example in tools/Makefile.am) - kill me if it is wrong
Original commit message from CVS:
- added playondemand plugin by Leif Morgan Johnson <lmjohns3@eos.ncsu.edu>
- some fixes to int2float
- aplied a patch from wrobell <wrobell@ite.pl> that is a first attempt at
making automake 1.5 happy (gst now requires automake1.5). It's still not
perfect but it builds.
- Made the schedulers plugable. The default scheduler now lives inside a
plugin.
- Added a new mpeg1/2 parser/demuxer.
- Fixed some compiler warnings in the core libs.
- substantial work to GstThread (hopefully less race conditions). simplified
the code in GstThread a bit. A state change can now also happen in the
thread context.
- reworked the state semantics of a bin. it'll now automatically get the
highest state of its children.
- the autoplugger now nests the threads so that a state change failure of
one thread doesn't make its upstream thread lock.
- GstQueue refuses to go to PLAYING if the sinkpad is not connected. This
way the queue will not wedge in the _get lock.
- GstQueue unlocks its mutexes when going to PAUSED.
- make sure that when all elements in a bin/thread go to PAUSED, the bin
is set to PAUSED too.
- make a parent bin wait for its children to PAUSE before ending the
iteration with FALSE (EOS)
- Some changes to GstPlay to deal with EOS.
- aplied the latest patch from Zeenix to gstrtp.
end result: GstPlay doesn't crash on EOS and the pipeline is now shut down
properly.
Original commit message from CVS:
fixed mainloop for non-glib2
this is a hack, we really need to fix this properly so i don't have to do this in every file
Original commit message from CVS:
i've added a testcase where the scheduler fails. i don't know enough about
the scheduler to fix it, though. the sequence goes:
- make a pipeline, iterate it once
- re-use one of the elements in a new pipeline, see if it works