Original commit message from CVS:
* gst/gstplugin.c: (gst_plugin_load_file):
Call g_module_close when we don't load the module
* gst/registries/gstlibxmlregistry.c:
(gst_xml_registry_get_property):
Port leak fix from 0.8
Original commit message from CVS:
2005-09-07 Andy Wingo <wingo@pobox.com>
* gst/base/gstbasesink.c (gst_base_sink_activate_pull): Fix a race
condition whereby the pad's task function is entered before the
pad_mode variable was set.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_alloc_buffer):
Catch misbehaving pad_alloc functions that don't
set up caps and do it for them.
Original commit message from CVS:
* gst/registries/gstxmlregistry.h:
* gst/registries/gstxmlregistry.c: and update to newer API.
Incidentally they should be a bit faster now that they don't have
to parse the caps.
Original commit message from CVS:
2005-09-05 Andy Wingo <wingo@pobox.com>
* gst/registries/gstxmlregistry.h:
* gst/registries/gstxmlregistry.c: Um... resurrect...
Original commit message from CVS:
2005-09-05 Andy Wingo <wingo@pobox.com>
* gst/registries/gstxmlregistry.h:
* gst/registries/gstxmlregistry.c: Remove from CVS, they were
replaced by the libxml registry a while back
Original commit message from CVS:
add a source plugin description field, to represent the source
module this plugin is a part of. By default GST_PLUGIN_DEFINE
will set it to PACKAGE, which is automake's idea of the name of
the source project.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_pad_buffer_alloc):
Add comment.
* gst/elements/gstfakesink.c: (gst_fake_sink_init),
(gst_fake_sink_change_state):
Make state change function thread-safe.
* gst/gstpad.c: (gst_pad_alloc_buffer):
Set offset on generic buffer allocated by fallback.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* docs/gst/tmpl/gstelement.sgml:
* gst/gstpad.c:
* libs/gst/controller/gst-controller.c:
(gst_controlled_property_set_interpolation_mode),
(gst_controlled_property_new),
(gst_controller_find_controlled_property):
run the wingo-magic script against the docs
Original commit message from CVS:
2005-09-02 Andy Wingo <wingo@pobox.com>
* gst/gstelement.h: Add magical pixie dust to make glib-mkenums
consider this enum an enum and not a flags.
Original commit message from CVS:
2005-09-02 Andy Wingo <wingo@pobox.com>
* gst/gstelement.h (GstState): Renamed from GstElementState,
changed to be a normal enum instead of flags.
(GstStateChangeReturn): Renamed from GstElementStateReturn, names
munged to be GST_STATE_CHANGE_*.
(GST_STATE_CHANGE): Renamed from GST_STATE_TRANSITION, updated to
work with the new state representation.
(GstStateChange): New enumeration of possible state transitions.
Replaces GST_STATE_FOO_TO_BAR with GST_STATE_CHANGE_FOO_TO_BAR.
(GstElementClass::change_state): Pass the GstStateChange along as
an argument. Helps language bindings, so they don't have to use
tricky lock-needing macros like GST_STATE_CHANGE ().
* scripts/update-states (file): New script. Run it on a file to
update it for state naming and API changes. Updates files in
place.
* All files updated for the new API.
Original commit message from CVS:
* gst/gsttrace.c: (gst_trace_flush), (gst_trace_text_flush):
* gst/gstutils.c: (gst_util_set_value_from_string),
(gst_util_set_object_arg):
fix a bunch of unchecked return values
* tools/gst-complete.c: (main):
* gstreamer.spec.in:
clean up a little
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_event), (gst_base_sink_do_sync),
(gst_base_sink_handle_event):
* gst/base/gstbasesink.h:
Handle newsegments more correctly.
* gst/gstbus.c:
Fix docs.
* gst/gstevent.c: (gst_event_new_newsegment):
A newsegment cannot have a start_time of -1
Original commit message from CVS:
* libs/gst/controller/gst-controller.c:
(gst_controlled_property_set_interpolation_mode),
(gst_controlled_property_new):
fixed boolean again
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_setcaps),
(gst_base_transform_handle_buffer):
Passthrough elements don't need the caps as they don't care.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_setcaps),
(gst_base_transform_handle_buffer), (gst_base_transform_chain):
Don't leak refcounts on buffers.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_configure_caps),
(gst_base_transform_setcaps), (gst_base_transform_handle_buffer),
(gst_base_transform_chain), (gst_base_transform_change_state):
* gst/base/gstbasetransform.h:
Handle the case where we are not negotiated more gracefully.
Original commit message from CVS:
* gst/elements/gstfilesrc.c: (gst_mmap_buffer_init),
(gst_file_src_map_region):
Set READONLY flag on mmap'ed buffers, otherwise
gst_buffer_make_writable() won't work properly (#314708).
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_handle_buffer):
passthrough elements can even do inplace on non writable
buffers (as they don't touch them).
Original commit message from CVS:
* gst/gstminiobject.c: (gst_mini_object_ref):
Cannot assert that the refcount has to be positive
since a disposed object can be resurected.
Original commit message from CVS:
* check/elements/fakesrc.c: (setup_fakesrc):
* check/elements/identity.c: (setup_identity):
Activate pads before using them.
Original commit message from CVS:
* gst/base/gstadapter.c: (gst_adapter_flush):
Flushing out 0 bytes is ok for this function.
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
no newsegment gives a warning and sets the start/stop to
invalid.
* gst/base/gstbasetransform.c: (gst_base_transform_change_state),
(gst_base_transform_set_passthrough):
Some debug info.
* gst/gstminiobject.c: (gst_mini_object_ref):
Check refcount here too.
* gst/gstpad.c: (gst_pad_init):
Pads are initially flushing and refusing data.
* gst/gstutils.c: (gst_element_link_pads_filtered):
When adding a capsfilter element make sure it has the
same state as the parent bin.
Original commit message from CVS:
* docs/gst/tmpl/.cvsignore:
* docs/gst/tmpl/gstformat.sgml:
* docs/gst/tmpl/gstversion.sgml:
* gst/gstbus.h:
* gst/gstformat.c:
* gst/gstformat.h:
* gst/gstversion.h.in:
more docs and two more inlined
Original commit message from CVS:
* check/gst-libs/controller.c: (GST_START_TEST),
(gst_controller_suite):
more tests
* docs/gst/tmpl/gstutils.sgml:
* docs/libs/gstreamer-libs-sections.txt:
* docs/libs/tmpl/gstdataprotocol.sgml:
include path fixes
* examples/controller/audio-example.c: (main):
controller example works now
* gst/gstclock.h:
doc fixes
* tools/gst-inspect.c: (print_element_properties_info):
show param spec flags
Original commit message from CVS:
2005-08-28 Andy Wingo <wingo@pobox.com>
* gst/gstutils.h (GST_BOILERPLATE_FULL): Prototype instance_init
as having two arguments instead of just one. Allows superclasses
to access information on subclasses -- see the terrible for() loop
in gtype.c:g_type_create_instance for the reason why. All callers
changed.
Original commit message from CVS:
2005-08-26 Andy Wingo <wingo@pobox.com>
* check/pipelines/simple_launch_lines.c (run_pipeline): Check
element_set_state's return val.
(test_2_elements): Add test that's been disabled for months.
* gst/elements/gstfakesink.c: Cleanups. Add can-activate-push and
can-activate-pull properties.
* gst/elements/gstfakesrc.c: Cleanups. Add can-activate-push and
can-activate-pull properties. Implement is_seekable so fakesrc can
operate in pull mode.
* gst/base/gstbasesink.c (GstBaseSink): Remove has-loop, has-chain
properties.
(gst_base_sink_activate, gst_base_sink_activate_pull)
(gst_base_sink_activate_push): Make activation mode choosing work.
Cleanups.
(gst_base_sink_chain, gst_base_sink_loop): Assert activation mode
is right. Make pull mode work. Post an eos before pausing in pull
mode.
(gst_base_sink_change_state): Pay attention to the core's
change_state() return val.
* gst/base/gstbasesrc.c (GstBaseSrc): Remove has-loop,
has-getrange properties. Cleanups.
* gst/base/gstbasesrc.h (GstBaseSrc): Remove has_loop,
has_getrange and replace with can_activate_pull and
can_activate_push.
* gst/base/gstbasesink.h (GstBaseSink): Rearrange fields, add
locking comments. Remove has_loop, has_chain and replace with
can_activate_pull and can_activate_push.
Original commit message from CVS:
* configure.ac:
* examples/Makefile.am:
* examples/metadata/Makefile.am:
* examples/metadata/read-metadata.c: (message_loop),
(have_pad_handler), (make_pipeline), (print_tag), (main):
Add metadata reading example that loops over a list of filenames,
dumping any tags found.
* gst/gstbus.c: (gst_bus_dispose):
* gst/gstelement.c: (gst_element_dispose):
Release a few potentially-held references in dispose.
Original commit message from CVS:
* docs/gst/gstreamer-docs.sgml:
* docs/libs/gstreamer-libs-docs.sgml:
disabed additional index entries again, as this makes docs-gen just
slow and they aren't useful yet
* docs/libs/gstreamer-libs-sections.txt:
little -section.txt cleanup for libs
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
* gst/base/gstbasetransform.c: (gst_base_transform_transform_size),
fix up some debugging
(gst_base_transform_get_unit_size),
(gst_base_transform_buffer_alloc), (gst_base_transform_event),
(gst_base_transform_handle_buffer):
* gst/base/gstbasetransform.h:
handle and store timed NEWSEGMENT events so that subclasses that
calculate time by counting samples have a segment_start time they
need to add to their timestamps - see audioresample
Original commit message from CVS:
* gst/gstbin.h:
removed ';' from the end of macro defs
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
* docs/gst/tmpl/.cvsignore:
* gst/gstbus.h:
* gst/gstelement.c: (gst_element_class_init),
(gst_element_set_state), (activate_pads),
(gst_element_save_thyself):
* gst/gstevent.c: (gst_event_new_newsegment):
* gst/gstevent.h:
* gst/gstiterator.c:
* gst/gstiterator.h:
* gst/gstpad.c:
* gst/gstprobe.h:
* gst/gstutils.c: (gst_pad_query_convert):
* gst/gstutils.h:
fixed parameter name mismatches between source, header and docs
added some more docs, resolved the last batch of unused elements in
docs (now someone needs to doc them)
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_init),
(gst_base_transform_transform_size),
(gst_base_transform_configure_caps),
(gst_base_transform_get_unit_size),
(gst_base_transform_buffer_alloc),
(gst_base_transform_change_state):
* gst/base/gstbasetransform.h:
Cache caps unit_size.
Make sure we cannot negotiate up and downstream at the
same time.
Original commit message from CVS:
* gst/gstbin.c: (bin_bus_handler):
Be a bit more conservative about the posted message.
* gst/gstbus.c: (gst_bus_post):
Some cleanups, warn wrong return values.
Original commit message from CVS:
* check/generic/states.c: (GST_START_TEST):
Cleanup can be done at the end.
* gst/gsttask.c: (gst_task_get_type), (gst_task_finalize),
(gst_task_func), (gst_task_cleanup_all), (gst_task_set_lock),
(gst_task_get_state), (gst_task_start), (gst_task_pause):
Oh boy.. Thanks for finding this, Thomas.
Original commit message from CVS:
* check/generic/states.c: (GST_START_TEST):
Make sure all tasks are stopped.
* check/gst/gstbin.c: (GST_START_TEST):
Unref after usage for proper valgrinding.
* gst/gstpad.c: (gst_pad_finalize), (gst_pad_stop_task):
Really wait for the task to stop before destroying the
mutex.
* gst/gstqueue.c: (gst_queue_sink_activate_push),
(gst_queue_src_activate_push):
Small cleanups. Don't stop the task when we did not start
it.
* gst/gsttask.c: (gst_task_get_type), (gst_task_init),
(gst_task_func), (gst_task_cleanup_all), (gst_task_set_lock),
(gst_task_get_state), (gst_task_start), (gst_task_pause),
(gst_task_join):
* gst/gsttask.h:
Protect the stream lock with the object lock.
Disallow setting the stream lock when running.
Add cleanup_all to wait for the threadpool to finish.
Remove code to autoallocate a mutex if none was provided.
Add _join() to wait for a task to stop.
Protect the thread pool with a global lock.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_get_times), (gst_base_sink_do_sync),
(gst_base_sink_handle_buffer), (gst_base_sink_change_state):
* gst/base/gstbasesink.h:
Handle newsegment events correctly.
Drop buffers out of the segment range.
Original commit message from CVS:
* check/Makefile.am:
* check/generic/states.c: (GST_START_TEST), (states_suite), (main):
add a test that does a bunch of state changes on elements
needs some fixing for valgrind
* check/states/sinks.c: (gst_object_suite):
whitespace
* gst/gstcaps.h:
add prototype for gst_caps_is_equal_fixed
* gst/gstplugin.c:
* gst/gstregistrypool.c:
doc fixes
Original commit message from CVS:
2005-08-24 Andy Wingo <wingo@pobox.com>
* gst/gstquery.c (gst_query_new_convert): Spew if we try to
convert a negative value. Doesn't make much sense. Mostly this is
here to force callers to ensure -1 maps to -1.
Original commit message from CVS:
* docs/pwg/advanced-types.xml:
Well done to Michael for catching my deliberate introduction
of this spelling mistake.
* gst/gstbin.c: (gst_bin_remove_func), (bin_bus_handler):
* gst/gstelement.h:
Add GST_ELEMENT_UNPARENTING to prevent races so that we can
unlink pads before removing the element from the bin.
Original commit message from CVS:
2005-08-24 Andy Wingo <wingo@pobox.com>
* gst/gst.c (parse_debug_list): Accept e.g. GST_DEBUG=4 to mean
the same thing as GST_DEBUG=*:4.
(parse_debug_level, parse_debug_category): New helper parsers.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
(gst_base_transform_transform_size), (gst_base_transform_getcaps),
(gst_base_transform_setcaps), (gst_base_transform_get_unit_size),
(gst_base_transform_buffer_alloc),
(gst_base_transform_handle_buffer):
use gboolean return values and pointers to size so we can use the
full GST_BUFFER_SIZE range (guint) for buffer sizes
use GstPadDirection for transform_caps
* gst/base/gstbasetransform.h:
rename get_size to get_unit_size since that's what it is
* gst/elements/gstcapsfilter.c: (gst_capsfilter_transform_caps):
use GstPadDirection for transform_caps
* gst/gstbuffer.c: (gst_buffer_new_and_alloc):
* gst/gstutils.h:
cleanup and debugging
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
* gst/gstbin.c: (bin_bus_handler):
* gst/gstmessage.c: (gst_message_finalize), (_gst_message_copy),
(gst_message_new), (gst_message_new_eos), (gst_message_new_error),
(gst_message_new_warning), (gst_message_new_tag),
(gst_message_new_state_changed), (gst_message_new_segment_start),
(gst_message_new_segment_done), (gst_message_new_custom):
* gst/gstmessage.h:
* tools/gst-launch.c: (event_loop):
* tools/gst-md5sum.c: (event_loop):
Change GST_MESSAGE_SRC to be a GObject rather than a GstObject, so
that applications can sensibly post custom messages with references
to their own objects.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_init),
(gst_base_transform_transform_caps),
(gst_base_transform_transform_size),
(gst_base_transform_configure_caps), (gst_base_transform_setcaps),
(gst_base_transform_get_size), (gst_base_transform_buffer_alloc),
(gst_base_transform_handle_buffer):
* gst/base/gstbasetransform.h:
Many fixes and new features added by Thomas. Can now also do
transforms with variable sizes and a custom fixate_caps function.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_new_and_alloc):
Some debugging.
* gst/gstclock.h:
Cast to ClockTime before formatting to time.
* gst/gstutils.h:
Cleanups.
Original commit message from CVS:
* check/gst-libs/controller.c: (GST_START_TEST),
(gst_controller_suite):
* docs/gst/tmpl/gstcaps.sgml:
* docs/gst/tmpl/gstghostpad.sgml:
* docs/gst/tmpl/gstquery.sgml:
* docs/gst/tmpl/gstutils.sgml:
* libs/gst/controller/gst-helper.c: (gst_object_set_controller),
(gst_object_sink_values), (gst_object_get_value_arrays),
(gst_object_get_value_array):
gracefully handle helper method calls to objects that are not beeing
controlled, added test case for that
Original commit message from CVS:
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
* docs/gst/gstreamer.types:
* docs/gst/tmpl/.cvsignore:
* gst/gstbin.h:
* gst/gstbus.c:
* gst/gstelement.c:
* gst/gstevent.h:
added about 100 symbols from gstreamer-unused.txt to the right sections
fixed more broken comments
added GstBus to docs
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_new_and_alloc):
some debugging
* gst/gstcaps.h:
whitespace fixes
* gst/gstpad.c: (gst_pad_activate_push), (gst_pad_alloc_buffer):
more debugging
* gst/gststructure.c: (gst_caps_structure_fixate_field_boolean):
* gst/gststructure.h:
add a fixate function for booleans; add a FIXME that these func
names should probably be gst_structure_fixate_*
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
(gst_base_transform_handle_buffer):
Also call the transform function if we have ANY caps.
* gst/gstpipeline.c: (gst_pipeline_set_new_stream_time):
Fix debug info.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_event_handler)
Don't pretend to handle seek events if the source is not seekable
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
Remove extra parameter to debug output
* gst/base/gstbasesrc.c: (gst_base_src_send_discont),
(gst_base_src_do_seek), (gst_base_src_activate_push):
Fix seek event handling.
* gst/gstpipeline.c: (gst_pipeline_change_state):
* gst/gstqueue.c: (gst_queue_handle_sink_event),
(gst_queue_src_activate_push):
Don't start the src pad task on FLUSH_STOP if the pad
isn't linked.
Debug changes.
Original commit message from CVS:
* gst/gstcaps.c: (gst_static_caps_get), (gst_caps_to_string):
Make _static_caps_get() refcounting sane.
* gst/gstelement.c: (gst_element_set_state):
Add g_return_val_if_fail() to protect against segfaults.
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
since we don't know when preroll is done, use refcount range
check for the sink
* gst/check/gstcheck.h:
add macro for checking refcount range
Original commit message from CVS:
* check/Makefile.am:
clean up environment for when registry gets built versus
when actual tests are run; valgrind seems to not report
leaks if GST_PLUGIN_PATH is set to some specific values
* check/gst/gstbin.c: (GST_START_TEST):
add more refcounting checks; maybe this exposes a
preroll lock bug ?
* common/check.mak:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
* gst/check/gstcheck.h:
* gst/gstbin.c: (bin_element_is_semi_sink), (gst_bin_get_state),
(gst_bin_change_state):
* gst/gstpad.c: (gst_pad_activate_push), (gst_pad_chain):
add/fix debugging/whitespace
Original commit message from CVS:
* check/gst/gstevent.c: (event_probe), (test_event),
(GST_START_TEST):
Er, don't call gst_bin_watch_for_state_change you idiot.
Original commit message from CVS:
* check/Makefile.am:
Use CHECK_CFLAGS and CHECK_LIBS
* check/gst/gstevent.c: (event_probe), (test_event),
(GST_START_TEST):
Don't leak events.
* gst/base/gstbasesrc.c: (gst_base_src_send_discont),
(gst_base_src_start), (gst_base_src_stop),
(gst_base_src_activate_push), (gst_base_src_activate_pull),
(gst_base_src_change_state):
Sprinkle gst_base_src_stop liberally around error paths to fix
problems reusing a source after failed state changes.
* gst/base/gsttypefindhelper.c: (helper_find_peek),
(helper_find_suggest), (gst_type_find_helper):
Extra debug output. Don't segfault on GST_PAD_GETRANGEFUNC = NULL
* gst/gstevent.h:
* docs/gst/tmpl/gstevent.sgml:
Migrate part of the docs from the SGML file. Wait for ensonic to
tell me how I did it wrong ;)
* tools/gst-typefind.c: (main):
Extra robustness to state changes between files.
Original commit message from CVS:
* check/Makefile.am:
don't valgrind the controller test - it's leaking - Stefan, HELP
* gst/check/gstcheck.c: (gst_check_message_error),
(gst_check_chain_func), (gst_check_setup_element),
(gst_check_teardown_element), (gst_check_setup_src_pad),
(gst_check_teardown_src_pad), (gst_check_setup_sink_pad),
(gst_check_teardown_sink_pad):
* gst/check/gstcheck.h:
add a bunch of methods to set up elements, and src and sink pads
* check/elements/fakesrc.c: (setup_fakesrc), (cleanup_fakesrc):
* check/elements/identity.c: (setup_identity), (cleanup_identity),
(GST_START_TEST):
use them
* gst/gstmessage.c:
* gst/gsttag.h:
whitespace/doc fixes
Original commit message from CVS:
make GST_ELEMENT_ERROR not do GST_ERROR_OBJECT - these errors should
be handled by the application and not always printed as well
Original commit message from CVS:
* check/Makefile.am:
set GST_TOOLS_DIR
* gst/check/gstcheck.c: (gst_check_message_error):
* gst/check/gstcheck.h:
add a fail_unless_equals_int
add fail_unless for error messages
Original commit message from CVS:
* check/gst/gstevents.c: (GST_START_TEST), (event_probe),
(test_event), (timediff), (gstevents_suite):
Should fix build on 64-bit arch's
Original commit message from CVS:
2005-08-18 Andy Wingo <wingo@pobox.com>
Make sure that when a pipeline goes to PLAYING, that data has
actually hit the sink.
* check/states/sinks.c (test_sink): A sink that doesn't get any
data shouldn't return SUCCESS for going to either PLAYING or
PAUSED. Test also the return values on the way back down.
* gst/gstelement.c (gst_element_set_state): When changing the
state of an element currently changing state asynchronously, go to
lost-state after commiting the pending state. Makes future calls
to get_state continue to return ASYNC.
* gst/base/gstbasesink.c (gst_base_sink_change_state): Return
ASYNC when going to PLAYING if we still don't have preroll, as can
happen with live sources.
Original commit message from CVS:
* docs/pwg/advanced-types.xml:
Hack long paragraph into 2 chunks as a workaround for buggy
jadetex version in sid and breezy that loops infinitely and
eats all RAM.