Commit graph

2063 commits

Author SHA1 Message Date
David Schleef
1da0f13eb8 gst/gstinfo.c: Change some internal symbol names to not conflict with new gstinfo.h symbols.
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).
2004-04-15 23:25:39 +00:00
David Schleef
0622e9e391 gst/gstcpu.c: Add workaround for gcc-3.2 generating bad code around the cpu detection asm code.
Original commit message from CVS:
* gst/gstcpu.c: (gst_cpuid_i386): Add workaround for gcc-3.2
generating bad code around the cpu detection asm code.
2004-04-15 03:20:23 +00:00
David Schleef
726bbbf7c6 configure.ac: Disable various code when compiling for MinGW.
Original commit message from CVS:
* configure.ac:  Disable various code when compiling for MinGW.
* gst/elements/Makefile.am:
* gst/elements/gstelements.c:
* gst/elements/gstfdsrc.c: (gst_fdsrc_get):
* gst/elements/gstfilesrc.c: (gst_filesrc_init), (gst_filesrc_get):
* gst/registries/gstxmlregistry.c: (make_dir):
2004-04-14 01:38:27 +00:00
David Schleef
26d7745271 gst/: Convert asm source into inline assembly.
Original commit message from CVS:
* gst/Makefile.am:
* gst/gstcpu.c: (gst_cpuid_i386): Convert asm source into inline
assembly.
* gst/gstcpuid_i386.s: remove
2004-04-14 01:24:41 +00:00
David Schleef
f8c81337c5 configure.ac: Changes to remove POSIXisms (mmap in this case) and to build DLLs on Windows.
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:
2004-04-13 22:18:36 +00:00
David Schleef
b3a5ebd27c gst/gstcaps.c: Fix bug in fixating lists.
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.
2004-04-13 20:50:53 +00:00
Thomas Vander Stichele
0d4983a512 add debug
Original commit message from CVS:
add debug
2004-04-13 10:44:12 +00:00
David Schleef
26663bbf1c gst/gstbuffer.c: (gst_buffer_free_chunk): Added gst_buffer_get_type() and changed to using it.
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
2004-04-13 02:22:02 +00:00
Benjamin Otte
9d756dd8e1 gst/schedulers/gstbasicscheduler.c: rename categories to basic_*
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
2004-04-11 18:55:49 +00:00
Benjamin Otte
5ec3dcdd5d gst/schedulers/gstbasicscheduler.c: make sure we can switch back to the main function if we're still in the main func...
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
2004-04-09 22:43:06 +00:00
Benjamin Otte
3147797afb gst/: don't use memchunks for these objects, use malloc instead
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_get_type):
* gst/gstclock.c: (gst_clock_get_type):
* gst/gstindex.c: (gst_index_get_type):
* gst/gstobject.c: (gst_object_get_type),
(gst_signal_object_get_type):
* gst/gstpad.c: (gst_pad_get_type), (gst_real_pad_get_type),
(gst_pad_template_get_type), (gst_ghost_pad_get_type):
* gst/gstpluginfeature.c: (gst_plugin_feature_get_type):
* gst/gstqueue.c: (gst_queue_get_type):
* gst/gstregistry.c: (gst_registry_get_type):
* gst/gstsystemclock.c: (gst_system_clock_get_type):
* gst/gstthread.c: (gst_thread_get_type):
don't use memchunks for these objects, use malloc instead
2004-04-09 19:05:03 +00:00
Thomas Vander Stichele
5e7866d43a docs/gst/Makefile.am: make docs exit on scanning problems fix nonsrcdir build issues
Original commit message from CVS:
* docs/gst/Makefile.am:
make docs exit on scanning problems
fix nonsrcdir build issues
* docs/gst/gstreamer-sections.txt:
adding stuff from -unused
* gst/gstqueue.h:
create GstQueueSize
* gst/schedulers/cothreads_compat.h:
fix cothread warnings
2004-04-07 15:31:25 +00:00
Thomas Vander Stichele
4e2a0b01e9 better debug info
Original commit message from CVS:
better debug info
2004-04-07 10:42:16 +00:00
Benjamin Otte
6e56b1be99 gst/elements/gstbufferstore.c: when the buffer is complete, don't check if other buffers are needed
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
2004-04-06 23:46:37 +00:00
Benjamin Otte
beb197fd35 gst/autoplug/gstspider.c: don't ref the element, adding already reffed it. And we didn't unref it later anyway... (hu...
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
2004-04-06 19:45:27 +00:00
Benjamin Otte
b107a0a3ef gst/gstbuffer.h: remove macro that wouldn't work anymore because struct member has been removed.
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
2004-04-06 05:59:31 +00:00
Benjamin Otte
a14e748c7b gst/gstinfo.h: *_FORMAT modifiers should require putting a % in front of them for consistency reasons.
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.
2004-04-06 05:58:32 +00:00
Benjamin Otte
9f58cab1f9 whoops, debugging stuff left
Original commit message from CVS:
whoops, debugging stuff left
2004-04-05 22:58:11 +00:00
Benjamin Otte
e0ab9b5740 add support for detecting if GStreamer runs inside valgrind.
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.
2004-04-05 21:42:07 +00:00
David Schleef
cce13e8e5c gst/gsttrace.h: Fix #ifdef nesting (bug #139109) Patch from jensgr@gmx.net (Jens Granseuer)
Original commit message from CVS:
* gst/gsttrace.h:  Fix #ifdef nesting (bug #139109) Patch from
jensgr@gmx.net (Jens Granseuer)
2004-04-05 19:02:39 +00:00
David Schleef
f63e0209bf gst/gstbuffer.c: Allocate GstBuffer structures in one place.
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.
2004-04-05 18:39:01 +00:00
Thomas Vander Stichele
d1f07374c3 adding Ronald's timestamp debug defines
Original commit message from CVS:
adding Ronald's timestamp debug defines
2004-04-05 13:34:33 +00:00
Thomas Vander Stichele
ac726511ce fix segfault for static plugins
Original commit message from CVS:
fix segfault for static plugins
2004-04-05 10:03:36 +00:00
Benjamin Otte
563ce1b133 gst/schedulers/gstbasicscheduler.c: fix to work with recent scheduling changes
Original commit message from CVS:
* gst/schedulers/gstbasicscheduler.c:
(gst_basic_scheduler_pad_link):
fix to work with recent scheduling changes
2004-04-05 02:30:20 +00:00
Benjamin Otte
9f11d29481 gst/schedulers/entryscheduler.c: (some functions, dunno which, prepareChangeLog doesn't work when cvs indents): don't...
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.
2004-04-04 23:21:09 +00:00
Benjamin Otte
cb6ac1a3f9 fix unused warning
Original commit message from CVS:
fix unused warning
2004-04-04 04:17:52 +00:00
Benjamin Otte
fd58f301b7 gst/schedulers/gstbasicscheduler.c: fix uninitialized variable warnings
Original commit message from CVS:
* gst/schedulers/gstbasicscheduler.c:
(gst_basic_scheduler_pad_select):
fix uninitialized variable warnings
2004-04-04 03:11:46 +00:00
Benjamin Otte
dad31c5578 gst/gstpad.c: fix uninitialized variable warning
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_collect_valist):
fix uninitialized variable warning
* gst/schedulers/entryscheduler.c: (schedule_forward):
fix shadowed variable
2004-04-04 03:02:43 +00:00
Benjamin Otte
ac5674b03b gst/: implement gst_pad_collect as replacement for gst_pad_select.
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
2004-04-04 02:36:12 +00:00
Benjamin Otte
343d14cf0e gst/schedulers/entryscheduler.c: add can_schedule_pad to handle element states.
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
2004-04-04 00:24:30 +00:00
Benjamin Otte
e5ea553496 gst/schedulers/entryscheduler.c: remove unused variable, fix error inside Rb, fix compile warning in unreachable code
Original commit message from CVS:
* gst/schedulers/entryscheduler.c:
remove unused variable, fix error inside Rb, fix compile warning in
unreachable code
2004-04-03 20:52:02 +00:00
Benjamin Otte
93a0882595 fix compile warning in unreachable code
Original commit message from CVS:
fix compile warning in unreachable code
2004-04-03 20:42:43 +00:00
Benjamin Otte
d5ef66d230 gst/schedulers/entryscheduler.c: completely revamp the inner workings, so it's a lot easier to understand and extend
Original commit message from CVS:
* gst/schedulers/entryscheduler.c:
completely revamp the inner workings, so it's a lot easier to
understand and extend
2004-04-03 19:32:12 +00:00
Andy Wingo
02db61fece gst/schedulers/gstoptimalscheduler.c (GstOptSchedulerGroupLink): Rename ->group1 and ->group2 to ->src and ->sink, re...
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
2004-04-03 13:24:07 +00:00
Benjamin Otte
75f4ff0686 fix to successfully build and test with --disable-gst-debug configure switch
Original commit message from CVS:
* gst/autoplug/gstspider.c: (gst_spider_identity_plug):
* gst/gstinfo.h:
* testsuite/debug/category.c: (main):
* testsuite/debug/commandline.c: (main):
* testsuite/debug/output.c: (main):
* testsuite/debug/printf_extension.c: (main):
fix to successfully build and test with --disable-gst-debug
configure switch
2004-04-03 04:16:24 +00:00
Benjamin Otte
2396af9dc4 gst/gststructure.c: memleak fix: free fields array (partial fix for #134839)
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)
2004-04-02 23:14:42 +00:00
Ronald S. Bultje
d355246b0d docs/random/ds/0.9-suggested-changes: Add a note to change handoff use in fakesrc to be usable in a more generic way ...
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...).
2004-04-02 03:08:09 +00:00
Martin Soto
73b88d064e gst/registries/gstxmlregistry.c
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...
2004-04-01 18:28:44 +00:00
Thomas Vander Stichele
456bfef89d some more debuggin
Original commit message from CVS:
some more debuggin
2004-04-01 13:20:52 +00:00
David Schleef
cf56f6b30c gst/gstbuffer.c: (gst_buffer_join): Add function gst_buffer_join() to eventually deprecate gst_buffer_merge(). (bug...
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:
2004-04-01 00:40:26 +00:00
David Schleef
e6a6307944 gst/gstvalue.c: Add some union implementations. We didn't have any previously.
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.
2004-03-31 21:49:19 +00:00
Benjamin Otte
3bed253042 gst/gstthread.c: fix docs
Original commit message from CVS:
* gst/gstthread.c:
fix docs
* gst/gstutils.h:
fix GST_BOILERPLATE_FULL to not throw casting errors on C++
2004-03-30 18:02:38 +00:00
Benjamin Otte
6d87ece93d gst/elements/gstbufferstore.c: set the offset of the buffer to the requested offset
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
2004-03-30 16:31:06 +00:00
Thomas Vander Stichele
161bcaee42 check string for nullity
Original commit message from CVS:
check string for nullity
2004-03-30 11:21:40 +00:00
Thomas Vander Stichele
0a602d04e0 more doc fixes
Original commit message from CVS:
more doc fixes
2004-03-30 09:15:47 +00:00
David Schleef
8ce063f780 docs/gst/Makefile.am: Disable a bunch of headers from being scanned
Original commit message from CVS:
* docs/gst/Makefile.am:  Disable a bunch of headers from being scanned
* docs/gst/gstreamer-docs.sgml:  More hacking
* docs/gst/gstreamer-sections.txt:
* docs/gst/tmpl/cothreads_compat.sgml:
* docs/gst/tmpl/gstcaps.sgml:
* docs/gst/tmpl/gstclock.sgml:
* docs/gst/tmpl/gstelement.sgml:
* docs/gst/tmpl/gstevent.sgml:
* docs/gst/tmpl/gstpad.sgml:
* docs/gst/tmpl/gstutils.sgml:
* docs/gst/tmpl/gstxml.sgml:
* docs/gst/tmpl/gthread-cothreads.sgml:
* docs/random/ds/0.9-suggested-changes:
* gst/elements/gstfakesink.h: doc fixes
* gst/elements/gstfakesrc.h: doc fixes
* gst/gstcaps.c: doc fixes
* gst/gstcaps.h: doc fixes
* gst/gstelement.c: doc fixes
* gst/gstelement.h: doc fixes
* gst/gstindex.c: doc fixes
* gst/gstinfo.c: doc fixes
* gst/gstpad.c: doc fixes
* gst/gstpad.h: doc fixes
* gst/gstplugin.c: doc fixes
* gst/gsttypefind.h: doc fixes
* gst/gsturi.c: doc fixes
* gst/gstvalue.c: doc fixes
2004-03-30 07:36:19 +00:00
Colin Walters
f8d4198b95 gst/registries/gstxmlregistry.c (get_time)
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.
2004-03-29 22:17:28 +00:00
Benjamin Otte
097dc18c80 gst/gstpad.c: print caps in debugging output when setting caps failed
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.
2004-03-29 16:20:45 +00:00
Martin Soto
78640b89c0 gst/gstelement.*: New function for setting element time taking into account a hardware buffering delay.
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.
2004-03-28 13:15:21 +00:00
Benjamin Otte
b2067f5593 more brown paperbags, i can really start to go shopping soon
Original commit message from CVS:
more brown paperbags, i can really start to go shopping soon
2004-03-28 02:39:59 +00:00