Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_pop):
Need to awaken ALL the pads when we pop a buffer, otherwise
collectpads only works when there is 2 input streams.
Original commit message from CVS:
2005-12-14 Julien MOUTTE <julien@moutte.net>
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_base_init),
(gst_collect_pads_remove_pad), (gst_collect_pads_is_collected),
(gst_collect_pads_event), (gst_collect_pads_chain): Refactoring
of collectpads. This version removes a lot of races without
touching API/ABI. Yay !
Original commit message from CVS:
2005-12-12 Andy Wingo <wingo@pobox.com>
* libs/gst/net/gstnettimeprovider.c
(gst_net_time_provider_class_init, gst_net_time_provider_init)
(gst_net_time_provider_set_property)
(gst_net_time_provider_get_property): Export "active" as a GObject
property.
(gst_net_time_provider_thread): Only respond to time queries if
the time provider is active.
* libs/gst/net/gstnettimeprovider.h: Add an "active" boolean to
NetTimeProvider, preserving binary compat.
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
Added new symbol to docs.
* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
(gst_base_src_init), (gst_base_src_set_format),
(gst_base_src_default_query), (gst_base_src_query),
(gst_base_src_default_do_seek), (gst_base_src_do_seek),
(gst_base_src_perform_seek), (gst_base_src_send_event),
(gst_base_src_default_event), (gst_base_src_event_handler),
(gst_base_src_set_property), (gst_base_src_get_property),
(gst_base_src_wait), (gst_base_src_do_sync),
(gst_base_src_update_length), (gst_base_src_get_range),
(gst_base_src_check_get_range), (gst_base_src_loop),
(gst_base_src_default_negotiate), (gst_base_src_start),
(gst_base_src_activate_push), (gst_base_src_activate_pull),
(gst_base_src_change_state):
* libs/gst/base/gstbasesrc.h:
Implement seeking to other formats than _BYTES.
Implement more seeking methods correctly.
Doc updates.
Added query vmethod.
Added do_seek vmethod to make life easier for subclasses
when seeking.
API addition: gst_base_src_set_format()
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
Take current playback rate into account when reporting
the position.
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:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_base_init):
Change debug category to 'collectpads' from 'collect_pads'
(fixes#323250).
Original commit message from CVS:
patch by: Sebastien Moutte
* libs/gst/controller/gstinterpolation.c:
use convert function for uint64/double
* win32/vs6/libgstcontroller.dsp:
link to GLib
Original commit message from CVS:
* libs/gst/controller/gstinterpolation.c:
whitespace prices have crashed, we should feel free to use some now
use gst_guint64_to_gdouble
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:
* 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:
* docs/random/ensonic/dparams.txt:
some TODOs for the next dev cycle
* libs/gst/controller/gstcontroller.c:
(gst_controlled_property_set_interpolation_mode),
(gst_controlled_property_new):
* libs/gst/controller/gstcontroller.h:
use base type to assign acccessor functions
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/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:
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:
* 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:
* 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:
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:
2005-11-21 Andy Wingo <wingo@pobox.com>
* check/gst/gstevent.c (create_custom_events): Check that
FLUSH_STOP is serialized.
* check/elements/identity.c (event_func):
* check/elements/fakesrc.c (event_func): No stream lock, the core
takes it.
* gst/base/gstbasetransform.c (gst_base_transform_event): No more
stream lock taking, yay.
* gst/gstevent.h (GST_EVENT_FLUSH_STOP): Marked as serialized to
ensure that core takes the stream lock.
* gst/base/gstbasesrc.c (gst_base_src_do_seek): Update for stream
lock name change.
* gst/base/gstbasesink.c (gst_base_sink_event): No need to take
the stream lock for EOS, NEWSEGMENT, or FLUSH_STOP, the core does
it already. For the flush start we do take it though so we get the
right preroll state change messages.
* gst/gstqueue.c (gst_queue_sink_activate_push): No need to take
the stream lock here, the core does it for us.
* gst/gstpad.h (GST_PAD_GET_STREAM_LOCK): Renamed from
GST_STREAM_GET_LOCK.
(GST_PAD_STREAM_LOCK, GST_PAD_STREAM_TRYLOCK)
(GST_PAD_STREAM_UNLOCK, GST_PAD_STREAM_UNLOCK_FULL)
(GST_PAD_STREAM_LOCK_FULL): Renamed from GST_STREAM_*.
(GST_PAD_GET_PREROLL_LOCK): Renamed from GST_PREROLL_GET_LOCK.
(GST_PAD_PREROLL_LOCK, GST_PAD_PREROLL_TRYLOCK)
(GST_PAD_PREROLL_UNLOCK): Renamed from GST_PREROLL_*.
* gst/gstpad.c: Update for stream lock name change.
* gst/base/gstbasesink.c: Update for preroll lock name change.