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/gstelement.c: (gst_element_change_state):
Well, actually, I was about to remove this insane assert when
I noticed Wim already did that. A warning is nice so we can
fix actual ugs (using --g-fatal-warnings and backtraces), so
I added that instead.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_threadsafe_properties_pre_run),
(gst_element_threadsafe_properties_post_run),
(gst_element_set_state), (gst_element_change_state):
Added extra refcounting around various places.
Original commit message from CVS:
* gst/autoplug/gstspider.c: (gst_spider_class_init),
(gst_spider_identity_plug):
add a template for spider's sink
* gst/gst.c: (gst_register_core_elements):
queue's rank should be NULL, we don't want spider to add it.
Original commit message from CVS:
* gst/elements/gstfilesrc.c: (gst_filesrc_get_mmap):
work with non-regular files that can be mmapped (like /dev/zero)
* gst/elements/gsttypefindelement.c: (gst_type_find_element_chain):
get rid of typefinds that require a seek when we can't seek instead
of trying them over and over again
* tools/gst-launch.c: (idle_func), (error_cb), (main):
return non-zero failure value when the pipeline was interrupted or
an error occurred
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstscheduler.c: (gst_scheduler_register):
* gst/gstscheduler.h:
add gst_scheduler_register shortcut similar to gst_element_register
* gst/schedulers/entryscheduler.c: (plugin_init):
* gst/schedulers/gstbasicscheduler.c: (plugin_init):
* gst/schedulers/gstoptimalscheduler.c: (plugin_init):
use it
Original commit message from CVS:
2004-08-10 Colin Walters <walters@redhat.com>
* gst/registries/gstxmlregistry.c (gst_xml_registry_open_func):
Don't use O_EXCL to open temporary registry. It will prevent
registry creation if a temporary one already exists, which
is unnecessary.
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:
* gst/gststructure.c: (gst_structure_id_empty_new_with_size),
(gst_structure_id_empty_new), (gst_structure_empty_new),
(gst_structure_copy):
add gst_structure_id_empty_new_with_size to allow preallocating
value array sizes. Use this in gst_structure_copy to get rid of
reallocs.
don't do quark=>string=>quark when copying structures
Original commit message from CVS:
* gst/schedulers/entryscheduler.c:
(gst_entry_scheduler_remove_element):
fix for GST_DISABLE_DEBUG
* tools/gst-launch.c: (print_tag):
fixes for G_DISABLE_ASSERT
Original commit message from CVS:
* gst/gst.c: (gst_register_core_elements):
fix for G_DISABLE_ASSERT
* gst/gstinfo.c: (__gst_in_valgrind):
add for GST_DISABLE_DEBUG
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_get_type),
(gst_bin_child_state_change_func):
* gst/gstthread.c: (gst_thread_change_state):
Backported some debug logging from a reverted patch
Don't try to destroy the thread twice. Added some more
debugging in GstThread. Unlock and signal even if we
are in the thread context.
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol-test.c: (conversion_test):
Use GST_READ_GUINTxx_BE(), since it accesses unaligned memory.
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:
* gst/gstpad.c: (gst_pad_set_explicit_caps):
check that caps are fixed
* gst/gstpad.c: (gst_pad_template_new):
don't try to simplify caps, costs too much time on gst_init
* gst/gstplugin.c: (gst_plugin_add_feature):
G_ERROR if features are added twice
* gst/gsttypefind.c: (gst_type_find_register):
* gst/gstelementfactory.c: (gst_element_register):
don't add features twice
* docs/random/ds/0.9-suggested-changes:
add note about possible gst_init optimization
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/gstbin.c: (set_kid_state_func), (gst_bin_set_state):
* gst/gstthread.c: (gst_thread_release), (gst_thread_set_state):
Make sure that a bin state change tries to keep the children
in sync.
Added debug logging to the thread.
Original commit message from CVS:
update the version number
add gstinterface to the build
add many definitions needed by plugins, GST_CAT_DEFAULT only available in the Debug build ?
Original commit message from CVS:
* gst/autoplug/gstspideridentity.c: (gst_spider_identity_link):
don't delay links on the sink elements, it causes unnegotiated
links.
* gst/elements/gsttypefindelement.c:
(gst_type_find_element_base_init):
add our padtemplates, we indeed do have some.
* gst/elements/gsttypefindelement.c:
(gst_type_find_element_handle_event),
(gst_type_find_element_chain):
don't push data when typefinding failed.
* gst/gstpad.c: (gst_pad_link_fixate):
check that no fixate function returns empty caps.
* gst/gstpad.c: (gst_pad_push):
check that the link is negotiated before data gets pushed.
* tools/gst-register.c: (main):
don't assert (fixes#148283)
Original commit message from CVS:
2004-07-23 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* gst/elements/gstmultifilesrc.c: (gst_multifilesrc_class_init),
(gst_multifilesrc_init), (gst_multifilesrc_set_property),
(gst_multifilesrc_get_property), (gst_multifilesrc_get):
* gst/elements/gstmultifilesrc.h:
Added newmedia property so it generates newmedia events between each
file when property is set, as well as fixed eos handling
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:
* docs/random/ds/0.9-suggested-changes: more comments
* tools/gst-launch.c: (idle_func): Fix hard-to-translate string.
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_register):
set the factory in the class struct, so gst_element_get_factory
actually works
* gst/parse/grammar.y:
set element to playing when it gets unlocked as we can't rely on the
bin state - all elements in the bin state might still be locked in
NULL)
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (remove_from_group),
(gst_opt_scheduler_pad_link):
fix 147894-2 and the group_link problem.
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:
* gst/schedulers/entryscheduler.c:
(gst_entry_scheduler_loop_wrapper),
(gst_entry_scheduler_chain_wrapper),
(gst_entry_scheduler_get_wrapper):
reset the state when the cothread starts, so we don't get assertion
failures on restarting of cothreads
Original commit message from CVS:
* gst/gstelement.c: (gst_element_link_pads_filtered):
use correct sinkpad, if only sinkpad is specified, but not srcpad
(fixes#147889)
* gst/gstelement.c: (gst_element_set_state_func),
(gst_element_change_state): ref/unref the element, signal handlers
could get rid of the element otherwise
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:
* gst/schedulers/gstoptimalscheduler.c: (gst_opt_scheduler_init),
(create_chain), (destroy_chain), (create_group), (destroy_group),
(add_to_group), (merge_groups), (group_elements), (group_inc_link),
(group_dec_link), (gst_opt_scheduler_pad_link),
(group_inc_links_for_element), (group_migrate_connected):
Call group_inc_link with the proper src->sink ordering --
break this, and we break sort_chain. patch from wingo for bug
147713.
Partially revert patch 1.89. When adding a loop based element to
the scheduler, the links to other groups are automatically followed
and incremented. This should not happen because the bin will call
pad_link explicitly for those connection, resulting in them counted
twice. Results in assertion failure on pipeline cleanup.
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:
2004-07-16 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* docs/manual/bins-api.xml:
* docs/manual/factories.xml:
* docs/manual/helloworld.xml:
* docs/manual/links-api.xml:
fixes for out of date info, incorrect info and grammar
Original commit message from CVS:
2004-07-15 Zaheer Abbas Merali <zaheerabbas at merali dot>
* docs/manual/pads.xml:
* docs/manual/pads-api.xml: grammar fix
Original commit message from CVS:
2004-07-15 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* docs/manual/states.xml: Fix inconsistent information
Original commit message from CVS:
2004-07-15 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* docs/manual/motivation.xml:
Bonobo is no longer "emerging" and added sentence regarding tcp plugins
Original commit message from CVS:
* gst/gstelement.h:
Don't GST_ERROR_OBJECT smpty strings - Solaris doesn't like NULL
strings.
* gst/gstelement.c (gst_element_class_init):
GError's are boxed, not objects
* gst/gstmarshal.list:
update list for the fixed error signal
Original commit message from CVS:
2004-07-14 Andy Wingo <wingo@pobox.com>
* gst/gsttag.c: Add a tag merge func for pointers. The header was
there all along, but the function wasn't. (guile-gstreamer's build
system uses the address of the function -- I wasn't actually
trying to use this.)
2004-07-13 Andy Wingo <wingo@pobox.com>
* gst/gstpad.c (gst_pad_try_set_caps): Naive link functions (such
as gst_pad_proxy_pad_link) just link to every other pad when they
are called. In the case where the graph has cycles, this will mean
that a call to try_set_caps will recurse. Allow this recursion
and return OK, while we wait for the first try_set_caps to give a
proper return value.
(gst_pad_link_call_link_functions): Since this function is the
only one to set the NEGOTIATING flag on a pad, if the flag is set
it means that the link functions have indirectly recursed. If this
happens, error out to avoid infinite recursion and an eventual
SEGV.
(gst_real_pad_class_init): Remove a crufty GtkObject comment.
(gst_pad_proxy_getcaps): Intersect the result with the template
caps to ensure that the return value is valid.
2004-07-11 Andy Wingo <wingo@pobox.com>
* gst/gstdata.c (gst_data_is_writable): s/>=/>/. If there is only
one refcount, the calling function is the owner of the buffer.
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (group_dec_link),
(gst_opt_scheduler_pad_link), (group_migrate_connected):
Fix stupid warning when an element is to be migrated but
is already migrated.
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (group_dec_link),
(gst_opt_scheduler_pad_link), (group_migrate_connected):
Make sure that a single non-loop-based element does not
end up in a group. This fixes the testsuite again.
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (create_group),
(add_to_group), (merge_groups), (schedule_group),
(gst_opt_scheduler_get_wrapper), (group_elements),
(group_dec_link), (gst_opt_scheduler_pad_link),
(group_migrate_connected), (gst_opt_scheduler_pad_unlink),
(gst_opt_scheduler_iterate):
move isolated groups to a new chain.
Emit a warning instead of segfaulting in some error cases.
Fix a bug where the link count between groups was not calculated
correctly. Fixes#144510.
Original commit message from CVS:
compatibility fixes for Solaris 8/gcc 2.95
* configure.ac:
include libintl libs in LDFLAGS
* gstvalue.c (gst_value_deserialize_buffer):
cast isxdigit stuff to int to silence compiler warning
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/gstelement.c: (gst_element_class_init),
(gst_element_set_state), (gst_element_set_state_func):
virutalize gst_element_set_state, use set_state member in class
struct that was already added in 0.7 for this.
* gst/gstbin.c: (gst_bin_foreach), (set_kid_state_func),
(gst_bin_change_state):
make gst_bin_foreach works similar to other foreach functions, plug
memleaks in it. Make functions using it work with the new approach.
Document gst_bin_foreach, so it can be exported if we want to
* gst/gstbin.c: (gst_bin_class_init), (gst_bin_set_state):
use virtualized set_state to make set_state on bins set the state of
all its children.
Original commit message from CVS:
* configure.ac:
require valgrind >= 2.1 (fixes Gentoo bug 53967, see
http://bugs.gentoo.org/show_bug.cgi?id=53967)
* gst/gstpad.c: (gst_pad_alloc_buffer):
allow buffer_alloc functions to return NULL and allocate a normal
buffer in that case
Original commit message from CVS:
* docs/manual/quotes.xml:
Keep the quotes file alive
* docs/random/ds/0.9-suggested-changes:
Add the suggestion of including a 'rowstride' as part of video
format caps
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-11 Andy Wingo <wingo@pobox.com>
* gst/gstbin.c (gst_bin_add_func): If we're adding an element
whose state is higher than the bin state, raise the bin state to
ensure that bin state := highest child state.
Original commit message from CVS:
2004-07-11 Andy Wingo <wingo@pobox.com>
* gst/gstbin.c (gst_bin_foreach): New static function. Calls a
procedure on the children of a bin. Assumes that the procedure can
change the set of children.
(set_kid_state_func): New static function.
(gst_bin_change_state): Use gst_bin_foreach to call
set_kid_state_func. Fixes a bug: if a child had a state-change
handler that removes it from the bin, there would be a segfault.
Hopefully it should also work in the case where the state-change
handler on one child adds or removes other children. In any case,
fixes should go to gst_bin_foreach.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_remove), (gst_bin_dispose):
* gst/gstthread.c: (gst_thread_dispose), (gst_thread_catch),
(gst_thread_main_loop):
Since remove is virtual in GstBin we must not assume the
elements GList to have anothing usefull.
Add some more logging to GstThread and be a bit more paranoid
when resetting the scheduler.
Set the state of the bin to NULL before removing the children.
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:
(gst_opt_scheduler_pad_link), (group_elements_set_visited),
(element_get_reachables_func), (element_get_reachables),
(debug_element), (rechain_group), (group_migrate_connected),
(gst_opt_scheduler_pad_unlink):
Do not try to migrate decoupled elements to a new group since
they are not added to groups.
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:
* gst/autoplug/gstspideridentity.c: (gst_spider_identity_chain):
extra debugging
* gst/gstevent.h:
* gst/gstinfo.c: (gst_debug_log_default):
print time nicely. add thread pointer until someone figures out
a completely portable way of getting at thread id's.
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_try),
(_invent_event), (gst_pad_pull), (gst_pad_event_default_dispatch),
(gst_pad_call_chain_function):
extra debugging
* gst/schedulers/gstoptimalscheduler.c:
(get_group_schedule_function), (loop_group_schedule_function),
(gst_opt_scheduler_loop_wrapper), (gst_opt_scheduler_get_wrapper),
(pad_clear_queued), (gst_opt_scheduler_iterate):
rename BUFPEN and friends to DATAPEN since that's what they are.
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:
* gst/gstcaps.c: (gst_caps_save_thyself), (gst_caps_load_thyself):
Actually do something in these functions, like before the big
caps change. (bug #145137)
Original commit message from CVS:
* gst/gstinfo.h: wrap #pragmas in #ifdefs for the correct compiler
* gst/gstobject.h:
* gst/gstparse.h:
* gst/gsttrace.h:
* gst/gstxml.h:
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_check_schedulers),
(gst_pad_can_link_filtered), (gst_pad_link_filtered),
(gst_pad_link_prepare):
check that pads that get linked belong to the same manager. The old
code allowed linking elements before putting them into bins, so it
worked to link them and then put them in different threads, which
lead to weird behaviour.
Since this effectively disallows linking elements before putting
them in a bin, some applications might not work after this and error
out. If these applications are too critical, we might need to revert
that patch. Please test this before the next release...
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:
* gst/elements/Makefile.am:
* gst/elements/gstelements.c:
* gst/elements/gstmultifdsink.c: (gst_multifdsink_base_init),
(gst_multifdsink_class_init), (gst_multifdsink_init),
(gst_multifdsink_add), (gst_multifdsink_remove),
(gst_multifdsink_clear), (gst_multifdsink_chain),
(gst_multifdsink_set_property), (gst_multifdsink_get_property):
* gst/elements/gstmultifdsink.h:
Added an element that writes to multiple filedescriptors at once.
Original commit message from CVS:
* libs/gst/bytestream/filepad.c: (gst_file_pad_available),
(gst_file_pad_get_length):
* libs/gst/bytestream/filepad.h:
add 2 new functions
Original commit message from CVS:
2004-06-22 Zaheer Abbas Merali <zaheerabbas at merali.org>
* docs/gst/gstreamer-sections.txt:
remove from docs, the define that Benjamin removed from gstelement.h
Original commit message from CVS:
* gst/gstdata.c: (gst_data_is_writable):
whoops, return values were wrong, so writable data was marked as
non-writable and vice versa. (fixes#143953, spotted by Francis
Labonte)
Shows how rarely we need to copy data ;)
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/gstelementfactory.c: (gst_element_factory_create):
make the freakin "elementfactory bla has no type" message more
useful. So we actually can do something when someone shows up
complaining about it.
Original commit message from CVS:
* tools/gst-inspect.c (main): Fallback to plugin if no element is
found. This matches the old behavior better. Thanks to Thomas for
pointing out.
Original commit message from CVS:
* gst/gstcpu.c: (gst_cpuid_i386): Fix problem when using
-fomit-frame-pointer. Appears to generate correct code in
other cases as well.
Original commit message from CVS:
* tools/gst-inspect.c (main): Add two new command line options: -a
to print all elements and -n to print the name on each line. Also
fix some error reporting.
Original commit message from CVS:
reviewed by Benjamin Otte <in7y118@public.uni-hamburg.de>
* tools/gst-inspect.c: (print_signal_info):
don't free random data twice. (fixes#144185)
Original commit message from CVS:
* gst/elements/gstfakesink.c: (gst_fakesink_chain):
* gst/elements/gstidentity.c: (gst_identity_init),
(gst_identity_chain):
Print more buffer info in fakesink.
Make identity output similar to fakesink.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_set_time_delay):
add failure check
* gst/gstinfo.h:
put brackets around macro arguments of GST_TIME_ARGS, add note to
move it to correct header in 0.9
Original commit message from CVS:
* gst/indexers/gstfileindex.c: (gst_file_index_get_writer_id),
(gst_file_index_load), (_file_index_id_save_entries),
(gst_file_index_commit), (gst_file_index_add_association),
(gst_file_index_add_entry), (gst_file_index_get_assoc_entry),
(gst_file_index_plugin_init):
make debugging use a default category
Original commit message from CVS:
reviewed by Benjamin Otte <otte@gnome.org>
* gst/elements/gstfdsrc.c: (gst_fdsrc_class_init),
(gst_fdsrc_change_state):
reset offset counter when going READY => PAUSED. (fixes#142903)
Original commit message from CVS:
reviewed by Benjamin Otte <otte@gnome.org>
* gst/registries/gstxmlregistry.c:
(gst_xml_registry_rebuild_recurse):
don't rely on g_dir_open to figure out if a file is a directory, use
explicit G_TEST_IS_DIR. Reiserfs4 allows opening files as
directories. (fixes#142850)
Original commit message from CVS:
* gst/gstqueue.c: (gst_queue_dispose), (gst_queue_change_state):
fix memory leaks (fixes#142795). Initial patch by Sebastien Cote
* libs/gst/bytestream/adapter.c:
* libs/gst/bytestream/adapter.h:
fix copyright in header and typo in debugging category name
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (remove_from_chain),
(chain_group_set_enabled), (create_group), (add_to_group),
(merge_groups), (setup_group_scheduler), (group_elements),
(gst_opt_scheduler_iterate), (gst_opt_scheduler_show):
Don't try to follow the pad connections with other groups
when a loop based element is added to the scheduler because
the bin will inform the scheduler about the pad links a little
later.
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (add_to_chain),
(remove_from_chain), (chain_group_set_enabled),
(setup_group_scheduler), (group_element_set_enabled),
(gst_opt_scheduler_state_transition), (gst_opt_scheduler_iterate),
(gst_opt_scheduler_show):
Elements without a group can do a state change as well, just wait
with the setup of the scheduling function when it is added to a
chain.
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (add_to_chain),
(remove_from_chain), (chain_group_set_enabled), (add_to_group),
(merge_groups), (setup_group_scheduler),
(group_inc_links_for_element), (gst_opt_scheduler_iterate),
(gst_opt_scheduler_show):
Fixes to maintain internal consistency of the scheduler data
structures.
- adding an enabled group to a chain should increment the
number of enabled elements in that chain.
- removing an enabled group from a chain could disable the
chain.
- removing a disabled group from a chain could enable the
chain.
- add g_assert when internal inconsistency is detected.
- adding an element to a group could increase the number of
links this group has with other groups.
- merging two groups also merges the chains.
- also show group links in the _show method.
Please report regressions ASAP, so I can fix them.
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:
* tools/gst-inspect.c (main): Cleanup most parts of it, don't be
so verbose and print GstElement signal names all the time.
Original commit message from CVS:
* gst/gstcpu.c (gst_cpuid_i386): Protect some gcc asm stuff with
__GNUC__, patch from Brian Cameron, fixes bug #142804
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_default_copy):
* gst/gstbuffer.h:
Added Comment to a flag.
copy relevant flags in _buffer_copy.
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_deserialize_int_helper):
fix int variable deserialization and add a helper so we can actually
debug this.
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/schedulers/gstoptimalscheduler.c: (remove_from_group),
(setup_group_scheduler), (gst_opt_scheduler_pad_link):
Fixed an error introduced with patch for 1.63. When setting
a get based element as the entry point in a group, make sure
to mark the group as GET based.
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (create_group),
(setup_group_scheduler), (loop_group_schedule_function),
(gst_opt_scheduler_pad_link):
Added some more debug info and fixed a bug where the group
type was set to LOOP but it was in fact unknown.
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:
* gst/gstelement.c: (gst_element_class_init):
whoops, store the signal id correctly
* gst/schedulers/gstbasicscheduler.c:
(gst_basic_scheduler_chain_wrapper):
detect infinfinfinfinfinf^Cinite loops in chain wrapper when the
chain function isn't linked
Original commit message from CVS:
* configure.ac:
Add $GST_PKG_CFLAGS back into GST_INT_CFLAGS so I have large file
support until we decide where the flags should be used
* gst/elements/gstfilesrc.c: (gst_filesrc_srcpad_query):
Use GST_FORMAT_BYTES when GST_FORMAT_DEFAULT is passed
* gst/gstpad.c: (gst_pad_link_call_link_functions):
Output refused caps in the debug info
Original commit message from CVS:
* gst/gstpipeline.c: (gst_pipeline_dispose),
(gst_pipeline_change_state):
call gst_scheduler_reset on dispose (fixes#141416)
Original commit message from CVS:
* gst/elements/gstfilesrc.c: (gst_filesrc_get_mmap):
compute mapsize correctly
* gst/elements/gstfilesrc.c: (gst_filesrc_get_mmap):
use correct datatypes when calling a varargs function
* gst/elements/gsttypefindelement.c: (stop_typefinding):
push a DISCONT event as first thing
* gst/gst_private.h:
* gst/gstinfo.c: (_gst_debug_init):
remove GST_DATAFLOW debugging category
* gst/gstbin.c: (gst_bin_iterate):
use GST_SCHEDULING category
* gst/gstpad.c: (gst_pad_get_type), (_invent_event),
(gst_pad_push), (gst_pad_pull), (gst_pad_call_chain_function),
(gst_pad_call_get_function):
add GST_DATAFLOW to easily track flow of buffers or events.
* gst/gstqueue.c: (gst_queue_get_type),
(gst_queue_handle_pending_events), (gst_queue_chain),
(gst_queue_get), (gst_queue_handle_src_event):
use own static debugging category GST_DATAFLOW for dataflow,
use DEBUG category for showing which path events go, use LOG
category for buffers.
Original commit message from CVS:
* docs/gst/Makefile.am: Dear gtk-doc, please print out the unused
symbols, because otherwise we don't know what they are. Thanks,
the GStreamer team.
* gst/registries/gstxmlregistry.c: (make_dir): Remove a spurious ;
Original commit message from CVS:
(from Steve Lhomme)
* win32/Makefile: When using make clean the MS Visual Studio makefiles
are deleted. Fix.
* win32/Makefile.inspect:
* win32/Makefile.launch:
* win32/Makefile.register:
Original commit message from CVS:
* gst/gstelement.c: (gst_element_class_init),
(gst_element_no_more_pads):
* gst/gstelement.h:
add gst_element_no_more_pads and the "no-more-pads" signal
Original commit message from CVS:
* gst/gstregistry.c: (gst_registry_add_plugin):
refuse to add plugins when a plugin with same name is already
registered. Fixes a bunch of "How to remove plugins?" issues.
May lead to other problems though, let's test
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/gstpad.c: (gst_pad_set_active), (gst_pad_link_unnegotiate):
mark links as unengaged when unnegotiating instead of deactivating.
This way pads aren't marked as unengaged when going PLAYING=>PAUSED
Original commit message from CVS:
* common/m4/as-compiler-flag.m4: Properly quote arguments,
which may contain commas. Fixes detection of -Wa,-mregnames
Original commit message from CVS:
* gst/elements/gstfilesrc.c: (gst_filesrc_get),
(gst_filesrc_change_state), (gst_filesrc_srcpad_event):
* gst/elements/gstfilesrc.h:
send NEW_MEDIA events correctly
* gst/elements/gsttypefindelement.c: (start_typefinding),
(gst_type_find_element_handle_event):
restart typefinding when we get a NEW_MEDIA event
* gst/gstbin.c: (gst_bin_remove_func), (gst_bin_change_state),
(gst_bin_dispose):
don't die when someone removes elements in callbacks
* gst/gstelement.c: (gst_element_change_state):
improve debugging
* gst/gstpad.c: (gst_pad_pull), (gst_pad_call_chain_function):
we need a NEW_MEDIA event to engage a link
* gst/gsttrace.c: (gst_trace_new), (gst_alloc_trace_set_flags_all):
don't g_print debugging stuff
* testsuite/caps/simplify.c: (check_caps):
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:
* gst/schedulers/gstoptimalscheduler.c: (remove_from_group),
(group_dec_link), (gst_opt_scheduler_pad_unlink):
when removing an element from a group, we always need to
decrement the link count that this group had with other
groups through the element.
added an extra assert to catch inconsistencies when decrementing
the link count.
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:
* libs/gst/bytestream/Makefile.am:
* libs/gst/bytestream/adapter.c:
* libs/gst/bytestream/adapter.h:
add GstAdapter, similar to bytestream, but oesn't require ugly event
handling or uglier loopbased elements
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c
(gst_opt_scheduler_pad_unlink): Check if element is non-NULL and
really is a GstElement. Avoids critical when running gst-launch -v
and a oggdemux/decoding pipeline.
Original commit message from CVS:
* docs/gst/tmpl/gstpipeline.sgml :
* docs/manual/elements-api.xml :
doc fix by Patrick Guimond (Protector) from devel ML
reviewed by ronald
Original commit message from CVS:
* docs/gst/Makefile.am :
* docs/libs/Makefile.am :
apply a patch from Arwed v. Merkatz so that gtk-doc
generated docs install (same for .devhelp file)
(fixes part 1 of #138836)
Original commit message from CVS:
* docs/faq/dependencies.xml: typo
* docs/faq/getting.xml :
- fix download URL for new gstreamer site
- hide sf.net download page as latest version aren't there
- fix apt URLs
- fill "get via CVS" paragraph (link to dev page on the site)
* docs/faq/general.xml:
hide status tables as they no more exists
change case on plugins license file to reflect reality
* docs/faq/troubleshooting.xml:
remove the wiki question/answer as there is no more wiki
Original commit message from CVS:
reviewed by Benjamin Otte <otte@gnome.org>
* gst/schedulers/gthread-cothreads.h:
free allocated data for main cothread, too when destroying context
(fixes#141417)
Original commit message from CVS:
* gst/elements/gstfilesink.c: (gst_filesink_handle_event):
Patch from Sebastien Cote to fix leakage of events. (bug #141414)
Original commit message from CVS:
A bunch of portability fixes, derived from Steve Lhomme's MSVC
patch (bug #141317):
* gst/gst-i18n-lib.h: Allow disabling gettext.
* gst/gstatomic_impl.h: disable warning when it's dumb.
* gst/gstclock.c: fix include
* gst/gstcompat.h: fix variadic macro
* gst/gstinfo.c: fix include
* gst/gstmacros.h: add defines for inlines on MSVC
* gst/gstplugin.c: fix includes
* gst/gstregistry.c: fix includes
* gst/gstregistry.h: use S_IREAD, etc., if S_IRUSR isn't defined
* gst/gstsystemclock.c: fix include
* gst/gsttrace.c: (gst_trace_new), (gst_trace_text_flush): use
S_IREAD if S_IRUSR isn't defined. fix use of non-portable functions
* gst/registries/gstxmlregistry.c:
(gst_xml_registry_parse_element_factory): fix use of non-portable
functions
* libs/gst/control/dparam.h: Remove trailing comma in enum definition
* libs/gst/control/dparammanager.h: same
Original commit message from CVS:
Move a bunch of unused files to old/ with names that are
not case-insensitive-unique. These files still contain some
useful information that needs to be merged into gstbin.sgml,
etc., so they shouldn't be deleted yet.
* docs/gst/tmpl/GstBin.sgml:
* docs/gst/tmpl/GstBuffer.sgml:
* docs/gst/tmpl/GstCaps.sgml:
* docs/gst/tmpl/GstClock.sgml:
* docs/gst/tmpl/GstCompat.sgml:
* docs/gst/tmpl/GstData.sgml:
* docs/gst/tmpl/GstElement.sgml:
* docs/gst/tmpl/GstEvent.sgml:
* docs/gst/tmpl/GstIndex.sgml:
* docs/gst/tmpl/GstStructure.sgml:
* docs/gst/tmpl/GstTag.sgml:
* docs/gst/tmpl/old/GstBin.sgml:
* docs/gst/tmpl/old/GstBuffer.sgml:
* docs/gst/tmpl/old/GstCaps.sgml:
* docs/gst/tmpl/old/GstClock.sgml:
* docs/gst/tmpl/old/GstCompat.sgml:
* docs/gst/tmpl/old/GstData.sgml:
* docs/gst/tmpl/old/GstElement.sgml:
* docs/gst/tmpl/old/GstEvent.sgml:
* docs/gst/tmpl/old/GstIndex.sgml:
* docs/gst/tmpl/old/GstStructure.sgml:
* docs/gst/tmpl/old/GstTag.sgml:
Original commit message from CVS:
* gst/gstcpu.c: (gst_cpuid_i386): Don't clobber ebx in inline
assembly. gcc doesn't handle it correctly. (bug #141083)
* gst/gsttrashstack.h: same
Original commit message from CVS:
* docs/pwg/pwg.xml:
Just found out that this so-called "ima-wav" format is really
just "dvi adpcm" (according to the MS WAV documentation). So
renaming it. We didn't use it yet anyway.
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_append), (gst_caps_intersect),
(gst_caps_union):
only simplify in functions that create new caps. Simplifying in
gst_caps_append breaks tests.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
add gst_caps_do_simplify
* gst/gstcaps.c:
add documentation for gst_caps_do_simplify
* gst/gstvalue.h:
fix typo in gst_value_register_subtract_func declaration for gst-doc
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:
reviewed by Benjamin Otte <otte@gnome.org>
* gst/gstparse.c: (_gst_parse_escape):
Free the GString used in _gst_parse_escape()
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:
* gst/gstpad.c: (gst_pad_link_fixate):
add sophisticated error checking code to see if fixation functions
did their fixation right
Original commit message from CVS:
* gst/autoplug/Makefile.am: Fix some little buglets in last checkin.
* gst/indexers/Makefile.am:
* gst/schedulers/Makefile.am:
* libs/gst/bytestream/Makefile.am:
* libs/gst/control/Makefile.am:
* libs/gst/getbits/Makefile.am:
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:
* gst/autoplug/gstspider.c: (gst_spider_link_sometimes),
(gst_spider_identity_plug):
improve debugging messages
* gst/gstbin.c: (gst_bin_remove_func):
make sure the state_change function is only called with simple state
transitions
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:
* configure.ac: Add test for allowing unaligned access. Add define
to put in gstconfig.h.
* docs/gst/gstreamer-sections.txt: New symbols
* docs/gst/tmpl/gstcompat.sgml: Check in changes made by gtkdoc
* docs/gst/tmpl/gstfilesrc.sgml:
* docs/gst/tmpl/gstparse.sgml:
* docs/gst/tmpl/gsttypes.sgml:
* docs/gst/tmpl/gstutils.sgml:
* docs/gst/tmpl/gstvalue.sgml:
* gst/gstconfig.h.in: Add GST_HAVE_UNALIGNED_ACCESS
* gst/gstutils.h: Add macros for unaligned memory access. Useful
on most !i386/!powerpc architectures. From Daniel Gazard
<daniel.gazard@free.fr>. (bug #140156)
* po/af.po: Check in changes made by gettext.
* po/az.po:
* po/fr.po:
* po/nl.po:
* po/sr.po:
* po/sv.po:
Original commit message from CVS:
* gst/schedulers/entryscheduler.c:
(gst_entry_scheduler_yield):
refuse to yield when decoupled elements insist on doing that.
At least it's better than crashing
Original commit message from CVS:
* docs/libs/Makefile.am: Change sinclude to include
* docs/gst/Makefile.am: same
* pkgconfig/Makefile.am: Remove GNU-ism from makefile target
Original commit message from CVS:
* gst/parse/grammar.y (__gst_parse_chain_free): Don't do null
checking here, do it before calling the function.
Clean up, use for loops instead of while loops while iterating
over lists.
Original commit message from CVS:
* gst/autoplug/gstspider.c (gst_spider_request_new_pad): Fix typo
in debug message.
(gst_spider_create_and_plug): Improve debug message.
General: Replace while loops which iterates over GLists with for
loops. Which are much cleaner, improves readability, especially
for gst_spider_identity_plug
Original commit message from CVS:
* gst/gstelement.c: (gst_element_dispose):
simplify
* gst/gstpad.c: (gst_pad_call_chain_function):
don't create loads of events due to bad macro usage
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_is_fixed_foreach):
* gst/gstpad.c: (_gst_pad_default_fixate_foreach):
* gst/gstvalue.c: (gst_value_serialize_buffer),
(gst_value_deserialize_buffer), (gst_type_is_fixed),
(_gst_value_initialize): Create a new function gst_type_is_fixed()
to indicate types that are fixed wrt caps or not. Switching to
this function fixes (bug #140298).
* gst/gstvalue.h:
Original commit message from CVS:
* common/m4/gst-arch.m4: Implmenent a whitelist and blacklist
for GST_UNALIGNED_ACESS, since we essentially know which archs
are ok.
Original commit message from CVS:
* common/m4/gst-arch.m4: Add GST_UNALIGNED_ACCESS() macro that
checks if we can access unaligned memory.
* configure.ac: Use it.
Original commit message from CVS:
* gst/elements/gstfilesrc.c: (gst_filesrc_init), (gst_filesrc_get),
(gst_filesrc_change_state), (gst_filesrc_srcpad_event):
* gst/elements/gstfilesrc.h:
s/seek_happened/need_discont/ and require discont before sending any
data
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_serialize_buffer),
(gst_value_deserialize_buffer), (_gst_value_initialize):
Register these types as fundamental types. (bug #140015)
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_new),
(gst_pad_link_free), (gst_pad_link_try), (_invent_event),
(gst_pad_pull):
implement enforcing discont events before buffers are passed. This
allows state changes of only some elements and later correctly going
on where they left off (or in short: you can now set audio sinks to
NULL to release the device when the pipeline is paused)
* gst/gstpad.c: (gst_pad_call_chain_function),
(gst_pad_call_get_function):
* gst/gstpad.h:
add gst_pad_call_chain_function and gst_pad_call_get_function for
scheduler interaction. They are required because of the changes
above.
* gst/schedulers/entryscheduler.c: (get_buffer),
(gst_entry_scheduler_chain_wrapper),
(gst_entry_scheduler_get_wrapper),
(gst_entry_scheduler_state_transition),
(gst_entry_scheduler_pad_link):
* gst/schedulers/gstbasicscheduler.c:
(gst_basic_scheduler_chain_wrapper),
(gst_basic_scheduler_src_wrapper),
(gst_basic_scheduler_chainhandler_proxy),
(gst_basic_scheduler_gethandler_proxy),
(gst_basic_scheduler_cothreaded_chain),
(gst_basic_scheduler_chain_elements):
* gst/schedulers/gstoptimalscheduler.c:
(get_group_schedule_function), (pad_clear_queued),
(gst_opt_scheduler_pad_link):
use the new functions instead of calling get/chain-functions
directly.
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:
* docs/pwg/advanced-types.xml:
Add MS RLE support. Also document Qt RLE although I have no sample
files for that yet. And document an extra property for ADPCM.
Original commit message from CVS:
* gst/gstplugin.c: (_gst_plugin_fault_handler_restore),
(_gst_plugin_fault_handler_setup): Disable more stuff on
Windows.
Original commit message from CVS:
* gst/gstinfo.c: (_gst_debug_init): Change some internal
symbol names to not conflict with new gstinfo.h symbols.
* gst/gstinfo.h: Add inline functions for all those crazy
compilers that don't know how to handle variadic macros (MSVC).
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:
* configure.ac: Changes to remove POSIXisms (mmap in this case)
and to build DLLs on Windows.
* gst/Makefile.am:
* gst/elements/gstfilesrc.c: (gst_filesrc_get),
(gst_filesrc_open_file):
* gst/schedulers/Makefile.am:
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_structure_fixate_field_nearest_int),
(gst_caps_structure_fixate_field_nearest_double): Fix bug in
fixating lists.
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:
* gst/schedulers/gstbasicscheduler.c: (plugin_init):
rename categories to basic_*
* gst/schedulers/gstbasicscheduler.c:
(gst_basic_scheduler_chain_wrapper),
(gst_basic_scheduler_chainhandler_proxy),
(gst_basic_scheduler_gethandler_proxy),
(gst_basic_scheduler_eventhandler_proxy):
debugging category fixes - put common stuff in log category
* gst/schedulers/gstbasicscheduler.c:
(gst_basic_scheduler_chain_elements):
dirty fix: call gst_basic_scheduler_cothreaded_chain when already
active and linking two active chains
Original commit message from CVS:
* gst/schedulers/gstbasicscheduler.c:
make sure we can switch back to the main function if we're still in
the main function (supposed to fix#139617)
* gst/schedulers/gthread-cothreads.h:
don't throw an error when switching to the same cothread
Original commit message from CVS:
* gst/elements/gstbufferstore.c: (gst_buffer_store_get_buffer):
when the buffer is complete, don't check if other buffers are needed
* gst/elements/gstfilesrc.c: (gst_filesrc_srcpad_event):
check that the offset is >0 so we don't try to read before the
beginning of the file
* gst/gstpad.c: (gst_pad_set_pad_template):
sink the template, so we don't end up with 130k pad templates
Original commit message from CVS:
* gst/autoplug/gstspider.c: (gst_spider_link_add):
don't ref the element, adding already reffed it. And we didn't unref
it later anyway... (huge memleak when you used many spider elements)
* gst/gstelement.c: (gst_element_base_class_finalize):
* gst/gstelementfactory.c: (gst_element_factory_cleanup),
(gst_element_register):
* gst/gsturi.c: (gst_element_make_from_uri):
use gst_object_(un)ref instead of g_object(un)ref
Original commit message from CVS:
* gst/gstbuffer.h:
remove macro that wouldn't work anymore because struct member has
been removed.
* gst/schedulers/entryscheduler.c: (schedule_forward):
fix segfault for unconnected pads
Original commit message from CVS:
reviewed by David Schleef <ds@schleef.org>
* gst/gstinfo.h:
*_FORMAT modifiers should require putting a % in front of them for
consistency reasons.
Original commit message from CVS:
* configure.ac:
* gst/Makefile.am:
* gst/gst_private.h:
* gst/gstinfo.c: (__gst_in_valgrind), (_gst_debug_init):
add support for detecting if GStreamer runs inside valgrind.
requires valgrind (d'oh) and --enable-debug for correct cdetection.
print a big message in valgrind that GStreamer has detected it's
running inside and might now use different code.
* gst/gstmemchunk.c: (populate), (free_area),
(gst_mem_chunk_destroy), (gst_mem_chunk_alloc),
(gst_mem_chunk_free):
flag memchunks for valgrind, so it can detect leaking of chunks.
This allows detecting leaks of GstBuffer and GstEvent correctly
inside valgrind.
Original commit message from CVS:
* gst/gstbuffer.c: (_gst_buffer_sub_free),
(gst_buffer_default_free), (gst_buffer_default_copy),
(gst_buffer_alloc_chunk), (gst_buffer_free_chunk),
(gst_buffer_new), (gst_buffer_create_sub): Allocate GstBuffer
structures in one place.
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/schedulers/entryscheduler.c: (some functions, dunno which,
prepareChangeLog doesn't work when cvs indents):
don't throw an error when no element can be scheduled, there's too
many weird reasons why it doesn't work. Return STOPPED instead.
decoupled elemts' schedulability doesn't depend on bufpens.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_collect_array), (gst_pad_collectv),
(gst_pad_collect), (gst_pad_collect_valist), (gst_pad_selectv),
(gst_pad_select):
* gst/gstpad.h:
* gst/gstscheduler.c: (gst_scheduler_pad_select),
(gst_scheduler_lock_element), (gst_scheduler_unlock_element):
* gst/gstscheduler.h:
implement gst_pad_collect as replacement for gst_pad_select.
deprecate gst_pad_select and gst_scheduler_(un)lock_element
add new flag GST_SCHEDULER_FLAG_NEW_API for API that implements the
new pad_select, lock and unlock calls.
* gst/cothreads.c: (cothread_destroy), (cothread_switch):
* gst/cothreads.h:
* gst/schedulers/cothreads_compat.h:
* gst/schedulers/gthread-cothreads.h:
remove unused cothread_lock and cothread_unlock calls
* gst/schedulers/entryscheduler.c:
(gst_entry_scheduler_class_init), (gst_entry_scheduler_init),
(_can_schedule_loop), (gst_entry_scheduler_get_handler),
(gst_entry_scheduler_pad_select):
update to new API
* gst/schedulers/gstbasicscheduler.c:
(gst_basic_scheduler_class_init), (gst_basic_scheduler_init),
(gst_basic_scheduler_pad_select):
remove useless lock and unlock calls, update pad_select to new API
(untested)
* gst/schedulers/gstoptimalscheduler.c:
(gst_opt_scheduler_class_init):
remove useless select, lock and unlock function calls
* gst/elements/gstaggregator.c: (gst_aggregator_loop):
use gst_pad_collect instead of gst_pad_select
Original commit message from CVS:
* gst/schedulers/entryscheduler.c: (_can_schedule_get),
(can_schedule_pad), (can_schedule), (schedule), (schedule_forward),
(schedule_next_element), (print_entry):
add can_schedule_pad to handle element states.
add schedule_forward to select the correct entry to schedule next
Original commit message from CVS:
* gst/schedulers/entryscheduler.c:
completely revamp the inner workings, so it's a lot easier to
understand and extend
Original commit message from CVS:
2004-04-03 Andy Wingo <wingo@pobox.com>
* gst/schedulers/gstoptimalscheduler.c (GstOptSchedulerGroupLink):
Rename ->group1 and ->group2 to ->src and ->sink, respectively.
This allows better introspection of pipeline topology.
(add_to_chain): Don't do trickery to put loop elements first;
rather, queue a chain sort by marking the chain as dirty.
(remove_from_chain): Mark the chain dirty.
(sort_chain): New function. Sorts the group list so that terminal
sinks are first. This means elements on the sink side will be
preferentially sscheduled before elements on the src side of the
pipeline.
(chain_recursively_migrate_group): Use OTHER_GROUP_LINK.
(schedule_chain): If the chain is marked DIRTY, call sort_chain.
(gst_opt_scheduler_pad_link, gst_opt_scheduler_pad_unlink)
(group_inc_link): Change argument and variable names to match the
new link structure member names (src and sink).
(group_dec_link): Add some description
Original commit message from CVS:
reviewed by Benjamin Otte <otte@gnome.org>
* gst/gststructure.c: (gst_structure_free):
memleak fix: free fields array (partial fix for #134839)
Original commit message from CVS:
* docs/random/ds/0.9-suggested-changes:
Add a note to change handoff use in fakesrc to be usable in
a more generic way (fakesrc should be renamed to appsrc or so).
* gst/elements/gstfakesrc.c: (gst_fakesrc_class_init):
Change signal type to scope, so we can fill the buffer in the
handoff handler (that's the whole use of this signal...).
Original commit message from CVS:
* gst/registries/gstxmlregistry.c
(gst_xml_registry_rebuild_recurse): Fix the algorithm to
determine if a file is a G_MODULE. The old one discards paths
containing "so" somewhere in the middle. My home directory is
called "soto". Go figure...
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_join): Add function gst_buffer_join()
to eventually deprecate gst_buffer_merge(). (bug: #136408)
* gst/gstbuffer.h:
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/elements/gstbufferstore.c: (gst_buffer_store_get_buffer):
set the offset of the buffer to the requested offset
* gst/elements/gsttypefind.c: (stop_typefinding):
revert patch 1.18 (which I unfortunately don't know the reason for).
This is needed to allow downstream elements to seek. Otherwise
typefind might overwrite a previous seek by downstream elements.
This lead to errors with id3tag and typefind on some mp3s.
* gst/schedulers/entryscheduler.c: (COTHREADS_TYPE),
(gst_entry_scheduler_iterate):
be more verbose when debugging
Original commit message from CVS:
2004-03-29 Colin Walters <walters@redhat.com>
* gst/registries/gstxmlregistry.c (get_time)
(plugin_times_older_than_recurse):
Use the result of stat to determine whether a path is a file,
so we don't attempt to opendir() files.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_explicit_caps):
print caps in debugging output when setting caps failed
* gst/schedulers/entryscheduler.c: (COTHREADS_TYPE),
(schedule_next_element), (get_buffer), (run_chainhandler),
(element_may_start), (gst_entry_scheduler_chain_handler),
(gst_entry_scheduler_get_handler),
(gst_entry_scheduler_state_transition),
(gst_entry_scheduler_pad_link):
make this scheduler a testcase for mandatory
discont-before-first-buffer which is needed if we want to allow apps
to release the sound device.
add SCHED_ASSERT macro to print scheduler state before an assertion
triggers.
Original commit message from CVS:
* gst/gstelement.h:
* gst/gstelement.c (gst_element_set_time_delay): New function for
setting element time taking into account a hardware buffering
delay.
(gst_element_set_time): Now just an invocation of
gst_element_set_time_delay.
* gst/gstclock.h:
* gst/gstclock.c (gst_clock_get_event_time_delay): New function
allowing to set event times in the future.
(gst_clock_get_event_time): Now just an invocation of
gst_clock_get_event_time_delay.
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:
* docs/pwg/other-sink.xml:
* docs/pwg/other-source.xml:
Documentation on how to write source and sink elements. Other
stuff in chapter 4 (1-to-n/demuxer, n-to-1/muxer, n-to-n,
manager, autoplugger) are all still pending.
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:
* libs/gst/control/dparam.c: (gst_dparam_attach),
(gst_dparam_detach):
* libs/gst/control/dparammanager.c: (gst_dpman_init):
fix lvalue casts for real
Original commit message from CVS:
* gst/schedulers/gstbasicscheduler.c:
(gst_basic_scheduler_src_wrapper):
* gst/schedulers/gstoptimalscheduler.c:
(gst_opt_scheduler_loop_wrapper), (gst_opt_scheduler_get_wrapper),
(pad_clear_queued), (gst_opt_scheduler_add_element),
(gst_opt_scheduler_remove_element):
fix GStreamer to not have issues with lvalue casts anymore (fixes
some bug, but bugzilla is down)
Original commit message from CVS:
* gst/gstelement.c:
add documentation about a gobject quirk where the object hasn't the
correct class pointer set on initialization
* gst/schedulers/gstbasicscheduler.c:
(gst_basic_scheduler_src_wrapper):
make sure to not run into an infinite loop
Original commit message from CVS:
2004-03-20 Colin Walters <walters@verbum.org>
* gst/registries/gstxmlregistry.c:
(gst_xml_registry_open_func, gst_xml_registry_close_func): Make
registry saving atomic.
Original commit message from CVS:
2004-03-20 Colin Walters <walters@verbum.org>
* gst/registries/gstxmlregistry.c (gst_xml_registry_get_perms_func): Just use
access() instead of actually creating and deleting files.
Original commit message from CVS:
* gst/gst.c: (gst_get_popt_options), (gst_init_get_popt_table),
(gst_init_check_with_popt_table): Fix some gettext strings to
make them easier to translate. Required making the strings
non-const.
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c
(gst_opt_scheduler_pad_unlink): Fix bug that causes totem to
crash on MPEG playback. My boolean arithmetic is a bit rusty.
Original commit message from CVS:
* gst/gstelement.c:
add documentation note about gst_element_found_tags_for_pad not
being usable in getfunctions. (see #137042)
Original commit message from CVS:
* gst/gstcaps.h: jdahlin, what are you smoking? We can't just
change API right now! Readd gst_caps_is_simple() macro.
* gst/gstelement.c: (gst_element_base_class_finalize): Fix
uninitialized variable. I'd bet this caused crashes.
* gst/gstinfo.c: (gst_debug_print_object): Fix 64-bit cleanliness.
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:
* gst/gstqueue.c: (gst_queue_init):
Reset default max. values in queues. Reason is simply to avoid
braindead use. If you want wider values, use the properties. The
default is supposed to always work. Wider values would make this
beast a memory hog by default (250 full-PAL RGB32 video frames?
That's 440 MB! No thank you).
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c
(gst_opt_scheduler_pad_unlink): Implement unlink for elements with
links to elements within the same group, so we can finally remove
that annoying warning. Refactor the code a little bit
(group_dec_links_for_element): Split out
Original commit message from CVS:
2004-03-07 Andy Wingo <wingo@pobox.com>
* gst/gstbin.c (gst_bin_remove): Debugging fixes.
* gst/schedulers/gstoptimalscheduler.c (destroy_group): Assert
there are no links to other groups when a group is destroyed.
(gst_opt_scheduler_pad_unlink): If the unlink means an element is
removed from a group, make sure the link count to elements linked
to other pads is appropriately decremented. This really fixes
#135672.
The 1.60->1.61 patch has been reapplied in light of this fix.
* gst/gstelement.c (gst_element_dispose): Really protect against
multiple invocations this time.