Original commit message from CVS:
* gst/gst.c: (scan_and_update_registry), (init_post):
If the fork()'ed child process can't write the updated registry cache
file to disk for some reason, make it exit with a failure exit code,
so that the parent can then re-scan the plugins itself and update the
registry structures in memory and work with that (rather than failing
when creating elements because seemingly no plugins are available).
Refactor registry scanning code into separate function for this and
also separate fork() and non-fork() code paths. Fixes#344748.
Original commit message from CVS:
* gst/gstregistryxml.c: (gst_registry_xml_write_cache):
Fix silly bug that prevented us from creating
~/.gstreamer-0.10 and writing the registry in one
go (the first call to g_mkstemp() would overwrite the
placeholder in the template string, so the second call
to g_mkstemp() after creating the missing directory
would then error out with 'invalid argument').
Original commit message from CVS:
* gst/gstsegment.c: (gst_segment_set_duration),
(gst_segment_set_last_stop), (gst_segment_set_seek),
(gst_segment_set_newsegment_full), (gst_segment_to_stream_time),
(gst_segment_to_running_time), (gst_segment_clip):
Use G_UNLIKELY to help the compiler a bit.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_get_type), (gst_buffer_finalize),
(_gst_buffer_copy), (gst_buffer_is_metadata_writable),
(gst_subbuffer_finalize), (gst_buffer_create_sub),
(gst_buffer_is_span_fast), (gst_buffer_span):
Init _type for consistency.
Use _FLAGS macro to avoid type check.
Avoid unneeded type checks in subbufer code.
Original commit message from CVS:
* gst/gstobject.c: (gst_object_get_type), (gst_object_ref),
(gst_object_unref):
Add G_UNLIKELY in type registration.
Avoid type check in _ref/_unref since that is also
done in glib.
Original commit message from CVS:
* gst/gstinfo.c: (gst_debug_set_active),
(gst_debug_category_set_threshold), (_gst_debug_nameof_funcptr):
* gst/gstinfo.h:
Add some G_[UN]LIKELY.
Maintain __gst_debug_min to avoid formatting the arguments of
debug messages that will be dropped anyway to avoid a lot of
overhead from the debugging system.
Original commit message from CVS:
* gst/gst.c: (init_post):
use _exit() instead of exit() in our forked child; this ensures
that none of the registered exit handlers from whatever is using
GStreamer get executed. This fixes gnome-mixer-applet failing
to load, because ORBit would shut down.
Spotted by: Edward Hervey <edward@fluendo.com>
Fix suggested by: Tim-Philipp Müller <tim at centricular dot net>
Fixes#344474
Original commit message from CVS:
* gst/gstindex.c: (gst_index_gtype_resolver):
* tools/gst-xmlinspect.c: (print_plugin_info):
Fix leak spotted by coverity checker. Fixes#343827
Fix another other leak found by paolo borelli.
Original commit message from CVS:
* gst/gst.c:
plugin_paths is not used if we build without registry support.
* gst/gstsegment.c: (gst_segment_copy):
_copy() was always returning NULL...
Original commit message from CVS:
* gst/gst.c:
set #include <sys/wait.h> in a #ifdef #ifdef HAVE_FORK
* win32/common/libgstbase.def:
export gst_collect_pads_set_flushing
* win32/common/libgstreamer.def:
export gst_pad_set_acceptcaps_function, gst_structure_empty_new,
gst_value_fraction_multiply
* win32/vs6/gst_inspect.dsp:
add a link to intl.lib
Original commit message from CVS:
* gst/gstelement.c:
Clarify the use of _release_request_pad() and
_get_request_pad() a bit better.
* libs/gst/base/gstadapter.c: (gst_adapter_peek),
(gst_adapter_take_buffer):
Fix some doc and comment typos.
Original commit message from CVS:
* gst/gstsystemclock.c: (gst_system_clock_id_wait_unlocked):
Add debug that can be enabled using a #define at the top of the file,
for dumping stats about how late/early we were when waking up from
waiting on the clock.
Original commit message from CVS:
* gst/gst.c: (add_path_func), (init_post):
Don't scan registry paths passed via --gst-plugin--path immediately
(will crash, because absolutely nothing is set up and no types are
registered etc.); do this later in init_post(). Fixes#343057.
Original commit message from CVS:
* gst/gst.c: (init_post):
if we have fork, fork while reading/rebuilding the registry
so the parent doesn't take the hit of having all plugins loaded
in memory. Fixes#342777.
* configure.ac:
Check if we have fork()
* win32/common/config.h.in:
no fork() on win32
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_deserialize_fraction):
Handle NULL input and output pointers silently as a failed conversion,
rather than g_warnings.
Original commit message from CVS:
* gst/gstpad.c: (gst_flow_get_name), (gst_flow_to_quark):
* gst/gstpad.h:
Added _CUSTOM error and success GstFlowReturn that can be
used be elements internally.
Added macro to check for SUCCESS flowreturns.
API: GST_FLOW_CUSTOM_SUCCESS
API: GST_FLOW_CUSTOM_ERROR
API: GST_FLOW_IS_SUCCESS
* tests/check/gst/gstpad.c: (GST_START_TEST), (gst_pad_suite):
Added check for GstFlowReturn sanity.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_caps):
Short-circuit gst_pad_set_caps if setting the existing
caps pointer again, and avoid printing debug and
reffing/unreffing the caps.
* plugins/elements/gstqueue.c: (gst_queue_push_one):
There's actually no need to set the caps before pushing -
the acceptcaps method will handle it anyway.
Original commit message from CVS:
* gst/gsttypefind.c: (gst_type_find_get_type):
* gst/gsttypefind.h:
Added GST_TYPE_TYPE_FIND and gst_type_find_get_type() so a GType gets
registered for GstTypeFind pointers. This allows wrapping the structure
in bindings (i.e. gst-python).
Original commit message from CVS:
* gst/gstregistryxml.c: (read_string), (load_pad_template),
(load_feature), (load_plugin):
Allow empty strings for some of the plugin fields so we don't
drop valid plugin entries that were written out correctly.
Original commit message from CVS:
* gst/gstregistryxml.c: (gst_registry_xml_write_cache):
Use g_remove and g_rename instead of remove and rename that don't
handle utf8 characters. rename was failing for users who had specific
characters in their name then the registry was built at each gstreamer init.
* win32/vs6/gst_inspect.dsp:
* win32/vs6/gst_launch.dsp:
* win32/vs6/libgstbase.dsp:
* win32/vs6/libgstcoreelements.dsp:
* win32/vs6/libgstreamer.dsp:
Use a debug version of libxml2 (libxml2D.lib,libxml2D.dll) for DEBUG build
of libgstreamer and clean unused libraries in project links settings.
Original commit message from CVS:
* gst/gstobject.h:
Add cast to make compiler happy - refcount variable was a gint
in GstObject but is a guint in GObject and g_atomic_int_get()
wants a gint *.
Original commit message from CVS:
* gst/gstbuffer.c: (_gst_buffer_initialize):
Register subbufer along with the buffer type so that
it does not accidentally gets registered from N
different streaming threads in a non threadsafe way.
Original commit message from CVS:
* gst/gstbuffer.h:
* gst/gstevent.h:
* gst/gstmessage.h:
Make gtk-doc generate docs for our inlined gst_buffer_ref(),
gst_event_ref() and gst_message_ref() functions again
(ugly hack, please do fix if there's a better way besides
overrides.txt, which doesn't seem to work).
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_serialize_flags):
fix a leak if no flags are set
* tests/check/gst/gstvalue.c: (GST_START_TEST):
fix leak in tests
Original commit message from CVS:
* gst/gststructure.c: (gst_structure_gtype_from_abbr),
(gst_structure_parse_value):
add some comments
rename a method so that it actually says what it does better
Original commit message from CVS:
* gst/gstevent.c: (_gst_event_initialize):
* gst/gstformat.c: (_gst_format_initialize):
make sure some essential types used by events are registered
as part of gst_init()
* gst/gstvalue.c: (gst_value_serialize_flags):
if no flags are set, serialize them to a value that represents NONE
so that deserializing them works
* tests/check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
add tests for serialization and deserialization of flags
Original commit message from CVS:
* gst/gstinterface.h:
GST_IMPLEMENTS_INTERFACE and GST_IS_IMPLEMENTS_INTERFACE use the normal
GInterface type checking.
They were previously using non-defined macros.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_make_metadata_writable):
gst_buffer_make_metadata_writable() should maintain the
buffer flags (those that make sense at least) (see #340859).
Original commit message from CVS:
* docs/design/part-overview.txt:
Make upsteam/downstream concepts more clear.
Give an example of serialized/non-serialized events.
* docs/design/part-events.txt:
* docs/design/part-streams.txt:
Mention applied_rate.
* docs/design/part-trickmodes.txt:
Mention applied rate, flesh out some more use cases.
* gst/gstevent.c: (gst_event_new_new_segment),
(gst_event_parse_new_segment), (gst_event_new_new_segment_full),
(gst_event_parse_new_segment_full), (gst_event_new_tag),
(gst_event_parse_tag), (gst_event_new_buffer_size),
(gst_event_parse_buffer_size), (gst_event_new_qos),
(gst_event_parse_qos), (gst_event_parse_seek),
(gst_event_new_navigation):
* gst/gstevent.h:
Add applied_rate field to NEWSEGMENT event.
API: gst_event_new_new_segment_full()
API: gst_event_parse_new_segment_full()
* gst/gstsegment.c: (gst_segment_init), (gst_segment_set_seek),
(gst_segment_set_newsegment), (gst_segment_set_newsegment_full),
(gst_segment_to_stream_time), (gst_segment_to_running_time):
* gst/gstsegment.h:
Add applied_rate to GstSegment structure.
Make calculation of stream_time and running_time more correct
wrt rate/applied_rate.
Add some more docs.
API: GstSegment::applied_rate field
API: gst_segment_set_newsegment_full();
* libs/gst/base/gstbasesink.c: (gst_base_sink_configure_segment),
(gst_base_sink_get_sync_times), (gst_base_sink_get_position):
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_sink_eventfunc),
(gst_base_transform_handle_buffer):
Parse and use applied_rate in the GstSegment field.
* tests/check/gst/gstevent.c: (GST_START_TEST):
Add check for applied_rate field.
* tests/check/gst/gstsegment.c: (GST_START_TEST),
(gstsegments_suite):
Add more checks for various GstSegment operations.
Original commit message from CVS:
* gst/gstcaps.c:
Docs about how to print caps for debug purposes.
* gst/gstpadtemplate.c: (gst_static_pad_template_get):
use gst_caps_make_writable instead of gst_caps_copy, Fixes#340608
Original commit message from CVS:
* gst/gstelement.c:
use full enum names and preprend a '%' in docs strings to make recent
gtk-doc turn that into a link
Original commit message from CVS:
* gst/gstbuffer.h:
* gst/gstminiobject.c:
Add note about refcounting and miniobject/buffer writeability
to docs. Fixes#340604
* gst/gstelementfactory.h:
Added some explanation about @klass.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_init), (gst_pad_configure_sink),
(gst_pad_configure_src), (gst_pad_push):
Restore acceptcaps checking behaviour now that good plugins have
been released.
Original commit message from CVS:
Patch by: James Andrewartha <trs80 at tartarus uwa edu au>
* gst/gst.c:
* gst/gstbus.c:
* gst/gstclock.c:
* gst/gstevent.c:
* gst/gstformat.c:
* gst/gstmessage.c:
* gst/gstparse.c:
* gst/gstquery.c:
* gst/gstutils.c:
* gst/parse/Makefile.am:
* libs/gst/base/gstadapter.c:
* libs/gst/base/gstbasesrc.c:
* libs/gst/base/gstpushsrc.c:
* libs/gst/base/gsttypefindhelper.c:
* plugins/elements/gstfakesrc.c:
* plugins/elements/gstidentity.c:
Make sure gstprivate.h and/or config.h are
always included first, otherwise some of our
defines (like _FILE_OFFSET_BITS) might be
redefined in the system headers. Fixes build
on opensolaris (#340016).
Original commit message from CVS:
* gst/gst.c:
* gst/gstregistry.c: (gst_registry_scan_path_level),
(gst_registry_scan_path):
* gst/gstregistry.h:
only write out registry if it has changed, fixes#338339
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_serialize_flags):
Avoid NULL dereference when trying to serialize flags containing
invalid values.
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_serialize_buffer),
(gst_value_deserialize_buffer):
Don't try to serialize a GValue with a NULL buffer.
Fixes#339821.
* tests/check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
Added check for serialisation of NULL buffers.
Original commit message from CVS:
* gst/gstminiobject.c: (gst_value_take_mini_object):
Taking a NULL miniobject is valid, fix the case where
we try to unref the NULL miniobject.
Original commit message from CVS:
Patch by: Stefan Kost <ensonic at sonicpulse dot de>
* gst/gstbin.c: (gst_bin_handle_message_func):
Update docs.
Don't leak bin refcount when a state recalc is
in progress and we delay another one #339808.
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_register),
(gst_element_factory_create), (gst_element_factory_make):
Some cleanups.
Fixed a FIXME.
Updated docs (Fixes#131079)
* gst/gstpluginfeature.c: (gst_plugin_feature_load):
Small cleanups.
* tests/check/gst/gstelement.c: (GST_START_TEST),
(gst_element_suite):
Added testcase for elementfactory class field.
Original commit message from CVS:
* gst/gstsegment.c:
Added some more docs.
* libs/gst/base/gstbasesink.c: (gst_base_sink_perform_qos),
(gst_base_sink_reset_qos):
Calculate more accurate rate values.
Original commit message from CVS:
* gst/gst_private.h:
add a new #ifdef to use __declspec(dllimport) only for
other modules and not for gstreamer core
* gst/gstbasesink.c: (gst_base_sink_perform_qos):
use gst_guint64_to_gdouble for conversion
* win32/common/libgstreamer.def:
add new exported functions
* win32/vs6/gst_inspect.dsp:
* win32/vs6/gst_launch.dsp:
* win32/vs6/libgstbase.dsp:
* win32/vs6/libgstcontroller.dsp:
* win32/vs6/libgstcoreelements.dsp:
* win32/vs6/libgstdataprotocol.dsp:
* win32/vs6/libgstnet.dsp:
update project files
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_link):
Must set peer pads before calling the link function, otherwise
a task started from a link function might get a flow-not-linked
result when trying to push because the other thread where the
linking happens hasn't had a chance to set the peers yet. This
might happen for example when a queue gets linked to a downstream
element, as queue starts a streaming task when its source pad
gets linked. Happens in real life when playing back flac/musepack
files in playbin (#332390).
Original commit message from CVS:
* gst/gstbus.c:
Small documentation clarification about the signal watch.
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times),
(gst_base_sink_wait_clock), (gst_base_sink_do_sync),
(gst_base_sink_perform_qos), (gst_base_sink_reset_qos),
(gst_base_sink_do_render_stats), (gst_base_sink_render_object),
(gst_base_sink_get_position_last),
(gst_base_sink_get_position_paused), (gst_base_sink_change_state):
Convert and store timestamps in stream time and running time, the
raw timestamps are not usefull, also document this better.
Use different window sizes for good and bad QoS observations so
we react to badness a little quicker.
Keep track of the amount of rendered and dropped buffers.
Send QoS timestamps in running time.
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_sink_eventfunc),
(gst_base_transform_handle_buffer):
Compare QoS timestamps against running time.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_property):
Use g_value_get_object() instead of g_value_dup_gst_object(),
to avoid double-reffing the pad template (which we then sink,
so this worked previously if (and only if) the pad template
was floating.
* gst/gstpadtemplate.c: (gst_pad_template_init),
(gst_pad_template_pad_created):
Never return floating references to pad templates, create
them as initially-sunken.
Document an extra function (and make this stop sinking our
pad template, since that is now guaranteed to do nothing,
since we created it sunken).
* gst/gstghostpad.c:
Fix docs typo.
Original commit message from CVS:
* gst/parse/grammar.y:
Fix a leak in parse-launch for any source-or-sink named element
references used.
* tests/check/pipelines/parse-launch.c: (expected_fail_pipe):
Unref the pipeline if it exists after we've failed parsing.
Original commit message from CVS:
* gst/gstpipeline.c: (gst_pipeline_init):
When we create a pipeline bus, initially create it in flushing mode.
Fixes leaks in at least one test, and makes a new pipeline work the
same as one that has gone to READY and then back to NULL.
* gst/gstelement.c:
Typo fix in docs.
Original commit message from CVS:
* gst/gstquery.c: (gst_query_set_formats),
(gst_query_set_formatsv):
Fix leaking GValues in queries, as shown by valgrind/testsuite.
Original commit message from CVS:
2006-04-05 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* gst/gstinfo.c: (__gst_in_valgrind): Use printf instead of
VALGRIND_PRINTF
Original commit message from CVS:
2006-04-05 Andy Wingo <wingo@pobox.com>
* gst/gstpad.c (gst_pad_set_blocked_async): More debug.
* libs/gst/base/gstbasetransform.c
(gst_base_transform_sink_eventfunc): When resetting our segment on
FLUSH_STOP, also update the flag saying we haven't seen a
newsegment.
Original commit message from CVS:
Patch by: Paolo Borelli <pborelli at katamail dot com>
* gst/gstplugin.c: (gst_plugin_finalize), (gst_plugin_class_init),
(gst_plugin_check_license):
minor clean-ups: G_DEFINE_TYPE already takes care of the
parent_class stuff, no need to do it twice. Mark array of
license strings as constant. (#337103)
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* gst/gsttaglist.c:
* libs/gst/base/gstbasesink.c:
* libs/gst/base/gstbasesink.h:
* libs/gst/base/gstbasesrc.c:
* libs/gst/base/gstbasesrc.h:
Documentation updates. Make BaseSink and BaseSrc docs contain the
class structure so that people can actually see the prototypes for
virtual functions they're supposed to be overriding.
Original commit message from CVS:
* gst/gstregistryxml.c: (gst_registry_xml_read_cache):
If compiling against GLib-2.8 or newer, try to read the
registry file using GMappedFile first before falling back
to fopen() + fread() (#332151).
Original commit message from CVS:
* gst/gstelement.c: (gst_element_set_locked_state),
(gst_element_dispose):
Cleanup the error case.
* gst/gstobject.c: (gst_object_dispose):
print a critical when some object was disposed with
a parent, also revive the object since it might
crash the parent.
Original commit message from CVS:
* gst/gststructure.c: (gst_structure_id_set_value):
Make sure that string fields in structures/taglists
contain valid UTF-8 - we don't want to pass rubbish to
applications because of a buggy plugin (cp. #334167).
Original commit message from CVS:
* gst/gstbuffer.h:
* gst/gstevent.h:
* gst/gstmessage.h:
gst_[buffer|event|message]_ref() macros are replaced by a static
inline functions because gcc-4.1 will about if the return value
isn't used.
* tests/check/gst/gstevent.c: (event_probe):
gst_event_ref now has to be given a GstEvent* , fix check accordingly.
Original commit message from CVS:
* gst/gstutils.h:
Add G_UNLIKELY to our boilerplate to optimise the 'already registered
the type' case. (Closes: #335195 for now). In the future, when we
depend on GLib 2.10, we could also intern the type name using
g_intern_static_string()
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_handle_message_func),
(bin_query_max_init), (bin_query_position_fold),
(bin_query_position_done), (gst_bin_query):
Position query should also take max of all streams.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_alloc_buffer_full),
(gst_pad_push):
Don't leak buffers, caps and pads on negotiation errors.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_alloc_buffer_full),
(gst_pad_push):
Don't pound the cpu to pieces by checking get_caps when accept_caps
is called with the same caps as the pad already has.
Use GST_DEBUG_OBJECT when outputting caps change information.
Original commit message from CVS:
* gst/gstbuffer.h:
Documentation fix.
* gst/gstpad.c: (gst_pad_init), (gst_pad_acceptcaps_default),
(gst_pad_accept_caps), (gst_pad_configure_sink),
(gst_pad_configure_src), (gst_pad_chain), (gst_pad_push):
Make the default acceptcaps behaviour be to check the requested
caps against the gst_pad_get_caps output.
Ensure that gst_pad_accept_caps is used to check caps when a pad
doesn't have a setcaps function, so that pads automatically refuse
caps that they don't allow in their pad template. (Fixes#332986)
When a buffer with attached caps is pushed, ensure that the source
pad receives those caps even if the element didn't call
gst_pad_set_caps first.
Original commit message from CVS:
* gst/gstclock.c: (gst_clock_class_init), (do_linear_regression):
Marked the stats property as unimplemented so people don't get
wild ideas.
Add debug message when regression goes wrong.
Added some more docs.
Original commit message from CVS:
2006-03-12 Julien MOUTTE <julien@moutte.net>
* gst/gsttaglist.c: Fix rubbish docs that are encouraging
us to leak strings...
Original commit message from CVS:
* gst/gstclock.h:
Fix GST_CLOCK_TIME_IS_VALID signedness issues - we need
to cast the input to GstClockTime before comparing with
another GstClockTime value.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstpipeline.c: (gst_pipeline_class_init),
(gst_pipeline_init), (gst_pipeline_set_property),
(gst_pipeline_get_property), (gst_pipeline_change_state),
(gst_pipeline_set_auto_flush_bus),
(gst_pipeline_get_auto_flush_bus):
* gst/gstpipeline.h:
Add new API: gst_pipeline_set_auto_flush_bus() and
gst_pipeline_get_auto_flush_bus() to disable automatic
flushing of the pipeline's GstBus when going from READY
to NULL state (#332045).
Original commit message from CVS:
* gst/gstclock.c: (gst_clock_entry_new),
(gst_clock_id_compare_func), (gst_clock_id_wait),
(gst_clock_id_wait_async), (gst_clock_id_unschedule),
(gst_clock_init), (gst_clock_get_internal_time),
(gst_clock_set_master), (do_linear_regression),
(gst_clock_add_observation), (gst_clock_set_property):
* gst/gstclock.h:
Review docs.
Small cleanups.
Fix a possible segfault when the window-size is made smaller.
Calculate jitter before performing the clock wait. Ideally
the clock implementation should calculate jitter but we need
API breakage for that.
* gst/gstsystemclock.c: (gst_system_clock_init):
Docs review.
* libs/gst/base/gstbasesink.c: (gst_base_sink_do_sync):
Remove leftover else
* tests/check/gst/gstsystemclock.c: (GST_START_TEST),
(gst_systemclock_suite):
Added check to test GST_CLOCK_DIFF.
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
Added basesink new methods.
* gst/gstevent.c:
* gst/gstevent.h:
Docs updates. Flesh out the QoS docs.
* libs/gst/base/gstadapter.c:
Small doc clarification about ownership and flushing.
* libs/gst/base/gstbasesink.c: (gst_base_sink_set_sync),
(gst_base_sink_get_sync), (gst_base_sink_set_max_lateness),
(gst_base_sink_get_max_lateness), (gst_base_sink_set_property),
(gst_base_sink_get_property), (gst_base_sink_do_sync):
* libs/gst/base/gstbasesink.h:
Added new methods to allow subclass to control max-lateness
and sync.
Generate very basic QoS events based on last sync observation.
Updated docs, fix typo, added some QoS blurb.
* libs/gst/base/gstbasesrc.c:
Remove obsolete _get_state() calls from docs.
Original commit message from CVS:
* gst/gstvalue.c:
Document thread-unsafety of gst_value_register_foo_func()
when used at the same time as gst_value_foo() (#322628).
Original commit message from CVS:
* gst/gstmessage.c: (_gst_message_copy):
When copying a message, set the parent_refcount of the enclosed
structure to point at the copy, not the original message.
Original commit message from CVS:
* gst/gstutils.h:
Do proper cast here to make GST_BOILERPLATE_WITH_INTERFACE
usable in c++ code (#333417; patch by: Christophe Fergeau)
Original commit message from CVS:
* gst/gst.c:
Add a check and output a g_warning when GStreamer is built
against GLib 2.6 but running against 2.8 or higher, and vice
versa. (Closes: #323542)
Original commit message from CVS:
* gst/parse/parse.l:
Commit patch for parse_launch syntax from #331255. Removes
support for quoted strings and mimetypes when writing filtered
caps. See the bug report for more details - I'm pretty sure this
obscure feature is not in use by _anyone_ anywhere.
With this simple change, the size of the gstreamer.so here
drops from 2193KB to 1565KB.
Original commit message from CVS:
* gst/gstregistryxml.c: (load_feature):
Asserting on a failure to read part of the registry is Not Cool.
Just log a warning and return NULL (which is already handled)
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_get_type), (gst_bin_handle_message_func):
Help the compiler a bit with type registration.
Use existing forward cod path instead of duplicating it when
handling a message.
* gst/gstbus.c: (gst_bus_get_type):
* gst/gstcaps.c: (gst_caps_get_type), (gst_static_caps_get_type):
* gst/gstchildproxy.c: (gst_child_proxy_get_type):
* gst/gstclock.c: (gst_clock_get_type):
* gst/gstelement.c: (gst_element_get_type),
* gst/gstelementfactory.c: (gst_element_factory_get_type):
* gst/gstindexfactory.c: (gst_index_factory_get_type):
* gst/gstminiobject.c: (gst_mini_object_get_type):
* gst/gstpad.c: (gst_pad_get_type):
* gst/gstsegment.c: (gst_segment_get_type):
* gst/gststructure.c: (gst_structure_get_type):
* gst/gstsystemclock.c: (gst_system_clock_get_type):
* gst/gsttask.c: (gst_task_get_type), (gst_task_join):
* gst/gstvalue.c:
Help compiler with type registration.
* plugins/elements/gstqueue.c: (gst_queue_handle_sink_event):
Small doc update.
Original commit message from CVS:
* gst/Makefile.am:
* gst/gstparse.h:
* gst/gstutils.c:
* gst/gstutils.h:
Make things work with --disable-parse as they do with
--disable-load-save - the symbols involved disappear, but the
header is still installed and GST_DISABLE_PARSE is included via
gstconfig.h
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_blocked_async):
* gst/gstutils.c: (gst_pad_add_data_probe),
(gst_pad_add_event_probe), (gst_pad_add_buffer_probe),
(gst_pad_remove_data_probe), (gst_pad_remove_event_probe),
(gst_pad_remove_buffer_probe): Make those function act on the
ghostpad target when it's a ghostpad. (Closes#331727)
------------------------------------------------------
Original commit message from CVS:
* docs/random/release:
Move the current documentation of how to do a release to the top
of the file.
* gst/gstbin.c: (gst_bin_class_init),
(gst_bin_handle_message_func):
Allow multiple state-recalculation threads. (Closes#328873)
Original commit message from CVS:
2006-02-19 Julien MOUTTE <julien@moutte.net>
* gst/gstinfo.h: Add GST_STR_NULL to the second string.
* gst/gstpad.c: (gst_pad_set_event_function),
(gst_pad_set_query_function), (gst_pad_set_query_type_function),
(gst_pad_set_getcaps_function): GST_DEBUG_PAD_NAME evaluates to
2 strings. You can't use the STR_NULL macro on that.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_event_function),
(gst_pad_set_query_function), (gst_pad_set_query_type_function),
(gst_pad_set_getcaps_function)
* gst/parse/grammar.y: (gst_parse_found_pad), (gst_parse_perform_delayed_link)
Fixed NULL pointer used in GST_CAT_DEBUG using GST_STR_NULL macro
So now, we can use --gst-debug-level=5 on Windows
* win32/common/libgstcontroller.def:
Added export of gst_controller_init
* win32/vs6/libgstcontroller.dsp:
Fixed Release post build configuration
Original commit message from CVS:
* gst/gstregistry.c: (gst_registry_get_default),
(_gst_registry_cleanup):
Protect default registry with lock and ref/sink it.
Fixes#324818, patch by Torsten Schoenfeld.
Original commit message from CVS:
2006-02-10 Andy Wingo <wingo@pobox.com>
* gst/gstbus.c (gst_bus_class_init): Declare our private data
structure.
(gst_bus_init): Cache the location of the private data in the
instance structure.
(gst_bus_enable_sync_message_emission)
(gst_bus_disable_sync_message_emission): Implement new public
functions.
(gst_bus_post): Emit the sync-message signal if the user asked for
it. Fixes#330684.
* gst/gstbus.h (GstBus): Use a padding pointer to cache the
location of the bus-private structuure.
(gst_bus_enable_sync_message_emission)
(gst_bus_disable_sync_message_emission): New public functions.
Original commit message from CVS:
2006-02-07 Andy Wingo <wingo@pobox.com>
* libs/gst/base/gstcollectpads.c (gst_collect_pads_chain): Only
update last_stop if we're in TIME format and the timestamp is
valid.
* libs/gst/base/gstcollectpads.c (gst_collect_pads_event)
* libs/gst/base/gstbasetransform.c (gst_base_transform_eventfunc):
* libs/gst/base/gstbasesink.c (gst_base_sink_configure_segment):
If we get a new newsegment with a different format, adapt
accordingly.
* gst/gstclock.c (gst_clock_set_calibration): Accept a numerator
of 0. Not a problem, really.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_continue_state),
(gst_element_set_state_func), (gst_element_change_state):
Fixed#326576, been running this for quite some time with
no regressions at all.
Original commit message from CVS:
* gst/gstbin.c: (bin_remove_messages), (bin_query_duration_done):
Don't cache duration messages if we're not going to use or
free them.
Original commit message from CVS:
* docs/manual/advanced-dparams.xml:
* docs/pwg/advanced-dparams.xml:
more dparam docs
* gst/gstindex.c:
fix docs
* libs/gst/controller/lib.c: (gst_controller_init):
init just once
Original commit message from CVS:
2006-01-29 Julien MOUTTE <julien@moutte.net>
* gst/gstghostpad.c: (gst_proxy_pad_set_target_unlocked):
Set pad functions unconditionally. Fixes#329105.
Original commit message from CVS:
* gst/gstutils.c: (gst_element_unlink_pads):
Don't leak pad references.
* tests/check/elements/fakesink.c: (GST_START_TEST):
* tests/check/generic/sinks.c: (GST_START_TEST):
* tests/check/generic/states.c: (GST_START_TEST):
* tests/check/gst/gstbin.c: (GST_START_TEST):
* tests/check/gst/gstcaps.c: (GST_START_TEST):
* tests/check/gst/gstelement.c: (GST_START_TEST):
* tests/check/gst/gstghostpad.c: (GST_START_TEST):
* tests/check/gst/gstiterator.c: (GST_START_TEST):
* tests/check/gst/gstvalue.c: (GST_START_TEST):
Fix a bunch of leaks. Make generic/sinks.c
use a bit less cpu by slowing the buffer rate
between fakesrc and fakesink.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_dispose), (gst_bin_provide_clock_func),
(gst_bin_remove_func), (gst_bin_handle_message_func),
(bin_query_duration_fold), (bin_query_generic_fold):
Clean up references to the clock provider when disposed or when
handling a clock-lost message from it.
Unref sinks when performing a query via gst_iterator_fold, as the
gst_bin_iterate_sinks iterator refs each item. (Fixes#323874)
* gst/gstclock.c: (gst_clock_class_init), (gst_clock_dispose),
(gst_clock_set_master):
Drop our reference to the master clock, if any, when we are disposed.
* gst/gsttypefindfactory.c: (gst_type_find_factory_dispose):
Chain up in dispose.
Original commit message from CVS:
* gst/gstsystemclock.c: (gst_system_clock_id_wait_unlocked):
A clock entry that is scheduled for the exact time of the
clock is still in time.
* libs/gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_do_sync):
Add some more debug info.
Original commit message from CVS:
* gst/gstcaps.c:
Clarify behaviour of _is_equal() when passing NULL parameters.
* gst/gstpad.c: (gst_pad_link_check_compatible_unlocked),
(gst_pad_set_caps):
Cleanups. Don't unref NULL caps.
When setting the same caps, protect caps of the pad with
proper lock.
Use full functionality of _is_equal() when comparing caps.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_pads_activate):
When activating, do src pads first, then sink pads.
When de-activating, do sink pads first, then src pads.
Original commit message from CVS:
* gst/gstevent.c:
Fix docs typo
* plugins/elements/gstqueue.c: (gst_queue_handle_sink_event),
(gst_queue_chain), (gst_queue_push_one), (gst_queue_loop):
Do some refactoring. Doesn't actually change functionality,
but makes landing the DRAIN event easier later.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_dispose):
Guard gst_object_unref call against a NULL object (dispose
can theoretically be called multiple times).
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_element_set_state):
* gst/gstclock.c: (gst_clock_id_wait):
Added some more debug info.
* libs/gst/base/gstadapter.c:
Added more docs.
* libs/gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_do_sync), (gst_base_sink_chain):
Added some comments.
Original commit message from CVS:
2006-01-18 Andy Wingo <wingo@pobox.com>
* gst/gstindex.h (gst_index_add_associationv): Add to header. The
symbol was exported before, it appears this was just an oversight.
Fixes#168703.
Patch by: Torsten Schoenfeld <kaffeetisch at gmx.de>
* gst/gstindex.c (gst_index_add_associationv): Changed int in
prototype to gint. OK since this prototype was not in the header.
Original commit message from CVS:
2006-01-17 Andy Wingo <wingo@pobox.com>
* gst/gstregistry.c (_gst_registry_remove_cache_plugins): Lock the
registry while we remove plugins.
* tools/gst-inspect.c (print_element_info): Don't unref the
factory arg, that should be the responsibility of whatever code
received the ref. Fixes a double-free when called from
print_element_list via gst-inspect-0.10 -a. Fixes#327324.
(main): Unref the factory if we have one.
(print_element_list): No change -- relies on the
plugin_feature_list_free to free the list of features.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_is_metadata_writable),
(gst_buffer_make_metadata_writable):
* gst/gstbuffer.h:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buf):
* plugins/elements/gstcapsfilter.c: (gst_capsfilter_prepare_buf):
* tests/check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite):
Replace gst_buffer_(make|is)_metadata_writable patch now
that the release is out.
Original commit message from CVS:
2006-01-17 Andy Wingo <wingo@pobox.com>
* gst/gstregistry.c: Reflow design comment. Update so as to speak
in the present tense without reference to versions.
* gst/gstregistry.c (gst_registry_add_plugin)
(gst_registry_remove_plugin, gst_registry_remove_feature)
(gst_registry_find_feature, gst_registry_get_feature_list)
(gst_registry_get_plugin_list, gst_registry_lookup_feature)
(gst_registry_lookup, gst_registry_scan_path)
(_gst_registry_remove_cache_plugins)
(gst_registry_get_feature_list_by_plugin): Add argument
validation.
Original commit message from CVS:
* gst/gstbuffer.c:
* gst/gstbuffer.h:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buf):
* plugins/elements/gstcapsfilter.c: (gst_capsfilter_prepare_buf):
* tests/check/gst/gstbuffer.c: (gst_test_suite):
Back out patch until after the release.
Original commit message from CVS:
Reviewed By: Andy Wingo
* gst/gstbuffer.c: (gst_buffer_is_metadata_writable),
(gst_buffer_make_metadata_writable):
* gst/gstbuffer.h:
Add gst_buffer_(is|make)_metadata_writable as analogues of
gst_buffer_(is|make)_writable.
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buf):
* plugins/elements/gstcapsfilter.c: (gst_capsfilter_prepare_buf):
Use name gst_buffer_(is|make)_metadata_writable functions.
* tests/check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite):
Test gst_buffer_(is|make)_metadata_writable
(Closes: #324162)
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_span):
gst_buffer_span should copy the timestamp of the first buffer
if they were both originally overlapping subbuffers of the
same parent, using the same logic as the 'slow copy' case.
Original commit message from CVS:
* docs/random/ensonic/media-device-daemon.txt:
more ideas (dbus)
* gst/gstbuffer.c:
fix doc example, add clarification
* tools/gst-launch.1.in:
add initial info about GST_PLUGIN_PATH, needs more work
Original commit message from CVS:
* gst/gstmessage.c: (gst_message_parse_tag),
(gst_message_parse_error), (gst_message_parse_warning):
Don't crash when return location for error/warning debug
string is NULL; add fact that return locations can be
NULL to docs where appropriate.
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* gst/gstutils.h:
Add prototype for _get_type() function to GST_BOILERPLATE_FULL
macro, so that gcc doesn't complain if the -Wmissing-prototypes
compiler switch is being used (#325429).
Original commit message from CVS:
* gst/gst.c: (init_post):
Init tags stuff and some other things before loading
any static plugins (there may be other static plugins
than just the GStreamer ones, and they may want to
register their own tags or formats or whatever, and
preferably without segfaulting).
* plugins/elements/gstqueue.c: (gst_queue_handle_src_query):
Print at least a warning in the debug logs if we drop a
query just because we don't know how to adjust the value
in the particular format.
Original commit message from CVS:
* gst/gstcaps.c: (gst_static_caps_get_type):
* gst/gstcaps.h:
Added gpointer GType for GstStaticCaps so we can wrap them in bindings.
* gst/gstpadtemplate.c: (gst_static_pad_template_get_type):
* gst/gstpadtemplate.h:
Added gpointer GType for GstStaticPadTemplate so we can wrap them in
bindings.
Original commit message from CVS:
* gst/gstregistryxml.c: (load_feature):
Cleanups.
Don't use g_object_unref on GstObjects so that we avoid
leaks on unsafe glibs.
Original commit message from CVS:
* gst/gstminiobject.c: (gst_value_mini_object_lcopy):
Fix lcopy for mini objects, the mini object needs to be ref'ed.
* tests/check/gst/gstminiobject.c: (my_foo_init),
(my_foo_get_property), (my_foo_set_property), (my_foo_class_init),
(test_value_collection), (gst_mini_object_suite):
Add test to ensure refcounts end up as expected when passing
GstMiniObjects through g_object_get() and g_object_set().
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_activate_pull), (gst_pad_link_prepare):
Don't allow activation of a srcpad in pull_range if it has no
getrange function.
Change some debug statements to be a little clearer
* plugins/elements/gsttypefindelement.c:
(gst_type_find_handle_src_query):
Check that we have a peer before executing queries thereupon.
* tests/examples/metadata/read-metadata.c: (message_loop):
Use gst_bus_pop instead of gst_bus_poll when we just want it to
immediately return us any available message with 0 timeout.
Original commit message from CVS:
* gst/gstpluginfeature.c: (gst_plugin_feature_finalize),
(gst_plugin_feature_load):
more meaningful debug output
* configure.ac:
* tests/Makefile.am:
* tests/old/examples/Makefile.am:
make make distcheck happy again
Original commit message from CVS:
* gst/gstsegment.c: (gst_segment_init),
(gst_segment_set_last_stop), (gst_segment_set_seek),
(gst_segment_set_newsegment), (gst_segment_to_stream_time),
(gst_segment_to_running_time):
Added more documentation.
Make sure the last_pos value is updated properly.
Make sure to_stream_time and to_running_time don't
operate on wrong values.
* tests/check/gst/gstsegment.c: (GST_START_TEST):
Update check.
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_transform_double_fraction):
floor is not needed, F is always positive; this obviates the
need for adding -lm when building without libxml
Original commit message from CVS:
* gst/gstbuffer.c:
Small docs update.
* gst/gstcaps.c: (gst_caps_is_equal):
Don't assert on NULL <--> X. Fixes#323260
* gst/gstminiobject.c: (gst_mini_object_replace):
If we're doing atomic operations, we might just as well use
the proper way to get an atomic pointer.
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
Clean up debugging.
Original commit message from CVS:
2005-12-05 Andy Wingo <wingo@pobox.com>
patch by: Wim Taymans <wim@fluendo.com>
* libs/gst/base/gstbasetransform.c
(gst_base_transform_prepare_output_buf)
(gst_base_transform_buffer_alloc):
* plugins/elements/gstqueue.c (gst_queue_bufferalloc): Call
alloc_buffer_and_set_caps.
* gst/gstpad.c (gst_pad_alloc_buffer): Changed to not call
set_caps on the source pad.
(gst_pad_alloc_buffer_and_set_caps): New function, does what
alloc_buffer used to do. Fixes#322874.
* docs/gst/gstreamer-sections.txt:
* docs/design/part-negotiation.txt:
* docs/pwg/advanced-negotiation.xml: Update for the alloc_buffer
changes.
Original commit message from CVS:
2005-12-05 Andy Wingo <wingo@pobox.com>
patch by: Thomas Vander Stichele <thomas at apestaart dot org>
* gst/gst.c (init_post): remove hard-coded 0.9 location for
registries/plugins with a MAJORMINOR one.
(plugin_desc): Rename library from gstcoreleements to
staticelements. Fixes#323222.
Original commit message from CVS:
* gst/gstutils.c: (gst_util_guint64_to_gdouble),
(gst_util_gdouble_to_guint64), (gst_util_uint64_scale_int64):
* gst/gstutils.h:
* tests/check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite):
add tests that seem to show that the guint64/gdouble conversions
are correct.
Original commit message from CVS:
* gst/gstregistry.c: (gst_registry_add_path):
* gst/gstregistry.h:
* gst/gstregistryxml.c:
Fix docs again.
Removed old code from gstregistryxml.c
Original commit message from CVS:
2005-12-01 Andy Wingo <wingo@pobox.com>
* gst/gstevent.h (struct _GstEvent): Meant to remove the extra
padding here before, but it missed the commit.
Original commit message from CVS:
* configure.ac:
* gst/Makefile.am:
* gst/gst.c:
* gst/gstplugin.h:
* gst/gstregistry.h:
* tests/benchmarks/complexity.c:
* tests/benchmarks/mass-elements.c:
* tests/check/Makefile.am:
* tools/Makefile.am:
* tools/gst-inspect.c:
* tools/gst-xmlinspect.c:
various fixes to make
--disable-nls --disable-registry --disable-loadsave --disable-parse --disable-gst-debug
work and get the core .so down to 360444 bytes after stripping
Original commit message from CVS:
add some explicit casts
update dsp files; also installs the debug build in \gstreamer\debug to separate it from the non-debug build
Original commit message from CVS:
* gst/gst.c:
* plugins/elements/Makefile.am:
* plugins/elements/gstelements.c:
* plugins/elements/gstqueue.c:
move queue from core to the elements plugin
ç
Original commit message from CVS:
2005-11-29 Andy Wingo <wingo@pobox.com>
* libs/gst/base/gstbasetransform.h:
* libs/gst/base/gstbasesrc.h:
* libs/gst/base/gstbasesink.h: en-LARGE the padding.
* gst/gstconfig.h.in (GST_PADDING_LARGE): New define, the number
of pointers by which to pad very extensible base classes (like the
ones in libs/gst/base).
Original commit message from CVS:
2005-11-29 Andy Wingo <wingo@pobox.com>
* gst/gstevent.h (struct _GstEvent): Only one pointer of padding.
* gst/gststructure.h (struct _GstStructure): Only one pointer of
padding.
* gst/gstquery.h (struct _GstQuery): Only one pointer of padding.
* gst/gstpluginfeature.h: Remove a comment in PluginFeature.
* gst/gstplugin.h (struct _GstPluginClass): Add some padding.
* gst/gstobject.h: (struct _GstObject): Only one pointer of
padding; reduces object size by about 30%. We don't expect
anything else to go into gstobject.
* gst/gstminiobject.h (struct _GstMiniObject)
(struct _GstMiniObjectClass): Only one pointer of padding; the
payload is only a pointer and two ints anyway. For the class there
are only two methods as well.
* gst/gstelement.h (struct _GstElementClass): Removed
the state_changed signal callback, it is not used.
Original commit message from CVS:
* check/Makefile.am:
look in the right place for elements, a lot more chance of
success
* gst/Makefile.am:
remove indexers and elements subdirs
* plugins/Makefile.am:
make indexers conditional
Original commit message from CVS:
* gst/gstevent.c: (gst_event_new_new_segment),
(gst_event_parse_new_segment):
* gst/gstevent.h:
fix#320529 - clean up new_segment API and structure.
Let's hope everyone was using the methods, and not the structure.
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_activate_pull), (gst_base_sink_change_state):
Properly handle non GST_FORMAT_TIME segment
* gst/elements/gstidentity.c: (gst_identity_transform_ip):
Properly handle non GST_FORMAT_TIME segment
* gst/gstsegment.c:
This function is valid if the accumulator is 0 and the format
is different from the requested format.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_buffer_alloc):
Treat a pad alloc with new caps the same as if we were not
negotiated, in order to allow a changing upstream output
to produce a new format of data.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_class_init),
(gst_base_transform_event), (gst_base_transform_eventfunc):
The event virtual method is now properly implemented, with a default
handler
Sub classes should call the parent_class event method. They should
return FALSE if they had a problem handling the given event, or don't
want GstBaseTransform to send that even downstream
* gst/elements/gstidentity.c: (gst_identity_class_init),
(gst_identity_init), (gst_identity_event),
(gst_identity_transform_ip), (gst_identity_set_property),
(gst_identity_get_property):
* gst/elements/gstidentity.h:
Added the single-segment boolean property.
If set to TRUE, it will output a single segment of data, starting from
0, will eat up all incoming newsegment, and modify the timestamp of the
buffers accordingly
Original commit message from CVS:
* Makefile.am:
don't run checks if we don't have check
* common/check.mak:
remove the registry when running make torture
* docs/gst/gstreamer-sections.txt:
remove second multiply
* gst/gstqueue.c: (gst_queue_loop):
fix a compile warning when disabling debug
Original commit message from CVS:
* check/gst/gstutils.c: (GST_START_TEST):
Updated check, add some scaling accuracy checking code.
* gst/gstutils.c: (gst_util_div128_64),
(gst_util_uint64_scale_int64), (gst_util_uint64_scale),
(gst_util_uint64_scale_int):
Fix 6 times faster division code. Optimize for common
1/1 and less common X/1 cases.
Original commit message from CVS:
* check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite):
More checks.
* gst/gstclock.c: (gst_clock_finalize), (gst_clock_set_master),
(do_linear_regression), (gst_clock_add_observation):
Cleanups.
Release lock when the clock cannot be slaved.
Catch the case where the regression returned an invalid denominator.
* gst/gstutils.c: (gst_util_div128_64_iterate),
(gst_util_div128_64), (gst_util_uint64_scale_int64),
(gst_util_uint64_scale), (gst_util_uint64_scale_int):
Add protentially more performant non-iterative 128/64 divide function
that unfortunatly does not work yet.
Shortcut the trivial 0/X = 0 case.
Remove the warnings on overflow.
Original commit message from CVS:
* gst/gstvalue.c:
Improve documentation for gst_value_union().
* gst/gstvalue.h:
Change return value for union, intersect and subtract functions
from gint to gboolean.
Original commit message from CVS:
* configure.ac:
* gst/Makefile.am:
* gst/base/Makefile.am:
* gst/check/Makefile.am:
* gst/elements/Makefile.am:
* gst/net/Makefile.am:
update LDFLAGS use some more
Original commit message from CVS:
* gst/gstpluginfeature.c: (gst_plugin_feature_load):
This shouldn't issue a g_warning since it returns NULL if it
couldn't find the plugin, and all functions using this behave
properly on a NULL return. Switching to a GST_WARNING.
Original commit message from CVS:
* check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite):
Added more checks for the high precision uint64 cases.
* gst/gstutils.c: (gst_util_uint64_scale_int64),
(gst_util_uint64_scale), (gst_util_uint64_scale_int):
Implement high precission (guint64 * guint64) / guint64.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_query):
Fix wrong percentage query.
* gst/gstutils.c: (gst_util_uint64_scale),
(gst_util_uint64_scale_int):
Add some more common cases that can be handled
efficiently to _scale.
Original commit message from CVS:
* check/gst/gstminiobject.c: (thread_ref), (GST_START_TEST),
(gst_mini_object_suite):
don't use check calls from threads; check probably isn't
threadsafe and using a lock to make it threadsafe would
defeat the purpose of this check
* gst/check/gstcheck.c:
* gst/check/gstcheck.h:
use GST_DEBUG some more
Original commit message from CVS:
* check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite):
Added test for scaling.
* gst/gstclock.h:
Small doc fix.
* gst/gstutils.c: (gst_util_uint64_scale_int):
Implemented high precision scaling code.
Original commit message from CVS:
2005-11-24 Michael Smith <msmith@fluendo.com>
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
Unlock the PREROLL_LOCK in a failure case.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
Update for new API and API changes.
* gst/gstobject.h:
Documentation fix: GST_TRYLOCK -> GST_OBJECT_TRYLOCK
* gst/gstvalue.c:
Documentation typo fix.
* gst/net/gstnettimepacket.c:
Documentation fixes for arguments.
Original commit message from CVS:
* gst/gststructure.c: (gst_structure_get_fraction),
(gst_structure_parse_value),
(gst_structure_fixate_field_nearest_fraction):
* gst/gststructure.h:
* gst/gstutils.c: (gst_util_uint64_scale_int):
* gst/gstutils.h:
* scripts/update-funcnames:
API Changes.
Rename gst_util_clock_time_scale to gst_util_uint64_scale_int
Make gst_structure_fixate_field_nearest_fraction take a numerator
and denominator argument instead of a GValue
add gst_structure_get_fraction helper function.
Original commit message from CVS:
* docs/design/part-TODO.txt:
Update TODO.
* gst/net/gstnetclientclock.c: (gst_net_client_clock_thread):
* gst/net/gstnetclientclock.h:
Use parent fields for timeout and window_size.
Original commit message from CVS:
2005-11-23 Andy Wingo <wingo@pobox.com>
* check/net/gstnetclientclock.c (test_functioning): Adjust to
rate_num/rate_denom change.
* gst/net/gstnetclientclock.c
(gst_net_client_clock_observe_times): Take the SLAVE_LOCK not the
OBJECT_LOCK. Don't call add_observation with the lock.
* gst/gstclock.c (gst_clock_init): Initialize the rate as a
fraction.
(gst_clock_adjust_unlocked): Adjust using uint64_scale and the
rate fraction.
(gst_clock_set_calibration, gst_clock_get_calibration): Change to
deal with rate as a fraction whose numerator and denominator are
GstClockTime values.
(gst_clock_set_master): Only use the OBJECT_LOCK to set the
master; the other fields are protected by the SLAVE_LOCK.
(do_linear_regression): Note that this must be called with the
SLAVE_LOCK.
(gst_clock_add_observation): Take the SLAVE_LOCK, not the
OBJECT_LOCK. Call set_calibration instead of touching the
variables directly.
(gst_clock_set_property, gst_clock_get_property): Protect
master/slave parameters with the SLAVE_LOCK.
* gst/gstclock.h (GstClock): Remove rate, add rate_numerator and
rate_denominator. PR3C1S3. Add a new lock, the SLAVE_LOCK, and
note that all of the instance variables that add_observation and
the set_master functions use are protected by that lock and not
the OBJECT_LOCK.
(GST_CLOCK_SLAVE_LOCK, GST_CLOCK_SLAVE_UNLOCK): New macros.
* gst/gstclock.c (gst_clock_add_observation): No longer requires
the caller to take the object lock.
Original commit message from CVS:
* gst/gsterror.c: (_gst_core_errors_init):
* gst/gsterror.h:
Add error for clock stuff.
* gst/gstpipeline.c: (gst_pipeline_change_state),
(gst_pipeline_set_clock):
Post clock error when clock cannot be used in a pipeline.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
make two symbols from gstinfo private for the docs
* gst/base/gstcollectpads.h:
* gst/gstutils.c:
fix doc typos, update docs
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_wait), (gst_base_sink_do_sync),
(gst_base_sink_handle_event):
* gst/base/gstbasesink.h:
No need to store the clock, the parent element class already
has it.
* gst/gstbin.c: (gst_bin_set_clock_func), (gst_bin_add_func):
Updates for clock_set returning a gboolean
* gst/gstclock.c: (gst_clock_entry_new), (gst_clock_id_wait),
(gst_clock_id_wait_async), (gst_clock_class_init),
(gst_clock_init), (gst_clock_finalize),
(gst_clock_get_internal_time), (gst_clock_get_time),
(gst_clock_slave_callback), (gst_clock_set_master),
(gst_clock_get_master), (do_linear_regression),
(gst_clock_add_observation), (gst_clock_set_property),
(gst_clock_get_property):
* gst/gstclock.h:
Implement master/slave. When setting a clock as a slave, a
periodic timeout is scheduled to sample master and slave times.
Then the slave clock is recalibrated to match offset and rate
of the master clock.
Update logging a bit.
Add flag so that a clock can state that is cannot be slaved to
another clock.
* gst/gstelement.c: (gst_element_set_clock):
* gst/gstelement.h:
The set_clock returns a gboolean for when an element cannot
deal with the selected clock in the pipeline.
* gst/gstpipeline.c: (gst_pipeline_change_state),
(gst_pipeline_set_clock):
* gst/gstpipeline.h:
Handle the case where the selected clock cannot be set on
the pipeline.
* gst/net/gstnetclientclock.c: (gst_net_client_clock_class_init),
(gst_net_client_clock_init), (gst_net_client_clock_finalize),
(gst_net_client_clock_set_property),
(gst_net_client_clock_get_property),
(gst_net_client_clock_observe_times):
* gst/net/gstnetclientclock.h:
Use regression code in GstClock parent, remove duplicated
functionality.
Original commit message from CVS:
* gst/elements/Makefile.am:
* gst/elements/gstfakesink.c: (gst_fake_sink_state_error_get_type):
* gst/elements/gstfakesrc.c: (gst_fake_src_data_get_type),
(gst_fake_src_sizetype_get_type), (gst_fake_src_filltype_get_type),
(gst_fake_src_init), (gst_fake_src_prepare_buffer),
(gst_fake_src_alloc_buffer), (gst_fake_src_get_size):
* gst/elements/gstfakesrc.h:
* gst/gstqueue.c: (queue_leaky_get_type):
correctly fix GEnumValues so that nick is the short lowercase
dashed tag
* tools/gst-inspect.c: (print_element_properties_info):
also show the nick, since it's useful to use from parse_launch
syntax
Fixes#322139
Original commit message from CVS:
* gst/gstutils.c: (gst_util_clocktime_scale):
* gst/gstutils.h:
* docs/gst/gstreamer-sections.txt:
Add util method for scaling a clocktime by a fraction. Useful
implementation is left as an exercise for the reader.
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_collect_fraction_range):
If needed, allocate storage in the destination value during
collection.
Original commit message from CVS:
* check/gst/gststructure.c: (GST_START_TEST):
* gst/gststructure.c: (gst_structure_parse_value):
Oops, broke automatic string type parsing.
Add a test to catch it in future.
Original commit message from CVS:
2005-11-22 Andy Wingo <wingo@pobox.com>
* gst/gsttagsetter.c (gst_tag_setter_get_tag_merge_mode)
(gst_tag_setter_set_tag_merge_mode, gst_tag_setter_get_tag_list):
Actually rename the function implementations. Grr.
Original commit message from CVS:
* check/gst/capslist.h:
Comment test cases
* check/gst/gststructure.c: (GST_START_TEST),
(gst_structure_suite):
Test automatic value type detection in gst_structure_from_string.
* gst/gststructure.c: (gst_structure_parse_value):
Add fraction as a type we try and guess automatically in
caps/structure strings.
Original commit message from CVS:
2005-11-22 Andy Wingo <wingo@pobox.com>
patch by: Torsten Schoenfeld <kaffeetisch gmx de>
* gst/gsttagsetter.h:
* gst/gsttagsetter.c: (gst_tag_setter_merge_tags)
(gst_tag_setter_add_tags, gst_tag_setter_add_tag_values)
(gst_tag_setter_add_tag_valist)
(gst_tag_setter_add_tag_valist_values): Renamed from _merge, _add,
_add_values, _add_valist, and _add_valist_values. Since this is an
interface the function suffixes should be more explicit so
language binding don't end up with element.add_valist ->
gst_tag_setter_add_valist, for example. Fixes#322069.
Original commit message from CVS:
* check/gst/gstcaps.c: (GST_START_TEST):
Extend caps string tests to check that a caps to string
conversion is reversible and produces the same caps.
* gst/gststructure.c: (gst_structure_value_get_generic_type):
Output "fraction" as the generic type fraction range, so caps
serialisation and deserialisation works.
* check/gst/capslist.h:
* gst/gstvalue.c: (gst_value_deserialize_fraction):
Support 'MIN' and 'MAX' for deserialising fractions.
Original commit message from CVS:
2005-11-22 Andy Wingo <wingo@pobox.com>
* gst/gstevent.h (gst_event_new_new_segment)
(gst_event_parse_new_segment, gst_event_new_buffer_size)
(gst_event_parse_buffer_size, gst_ghost_pad_new_no_target):
Renamed from *_newsegment, *_buffersize, *_notarget.
* scripts/update-funcnames: New script, performs the changes
listed above.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
Make sure the GstFlowReturn is returned.
* gst/gstbus.c: (gst_bus_add_signal_watch_full),
(gst_bus_add_signal_watch):
* gst/gstbus.h:
add gst_bus_add_signal_watch_full.
* gst/gstplugin.c: (gst_plugin_load_file):
Small style cleanup.
Original commit message from CVS:
* gst/gst.h:
include "gstchildproxy.h"
* gst/gstchildproxy.h:
* libs/gst/controller/gstcontroller.h:
use G_GNUC_NULL_TERMINATED
Original commit message from CVS:
* check/gst/capslist.h:
* check/gst/gstcaps.c: (GST_START_TEST):
* check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
* gst/gststructure.c: (gst_structure_parse_range),
(gst_structure_fixate_field_nearest_fraction):
* gst/gststructure.h:
* gst/gstvalue.c: (gst_value_init_fraction_range),
(gst_value_free_fraction_range), (gst_value_copy_fraction_range),
(gst_value_collect_fraction_range),
(gst_value_lcopy_fraction_range), (gst_value_set_fraction_range),
(gst_value_set_fraction_range_full),
(gst_value_get_fraction_range_min),
(gst_value_get_fraction_range_max),
(gst_value_serialize_fraction_range),
(gst_value_transform_fraction_range_string),
(gst_value_compare_fraction_range),
(gst_value_deserialize_fraction_range),
(gst_value_intersect_fraction_fraction_range),
(gst_value_intersect_fraction_range_fraction_range),
(gst_value_subtract_fraction_fraction_range),
(gst_value_subtract_fraction_range_fraction),
(gst_value_subtract_fraction_range_fraction_range),
(gst_value_collect_fraction), (gst_value_fraction_multiply),
(gst_value_fraction_subtract), (gst_value_deserialize_fraction),
(gst_value_transform_string_fraction), (_gst_value_initialize):
* gst/gstvalue.h:
Implement fraction ranges and extend GstFraction to support
arithmetic subtraction, as well as deserialization from integer
strings such as "100"
Add a testsuite as for int and double range set operations