Original commit message from CVS:
2005-11-18 Andy Wingo <wingo@pobox.com>
* gst/net/gstnetclientclock.c (gst_net_client_clock_thread):
Whoops, check the right fd. Also add some debugging.
(gst_net_client_clock_observe_times): Adjust for int64 offset.
(do_linear_regression): Add a crapload of debugging. Subtract off
the minimum values from the input series to discard unneeded bits.
Use only int arithmetic. There is still double arithmetic when
calculating the intercept that needs fixing. Return boolean to
indicate success; FALSE would mean the domain or range is too
great. Still needs fixes.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_get_position):
For the current position in stream time, we need to subtract
accumulated time.
* gst/gstsystemclock.c: (gst_system_clock_async_thread):
Release lock before calling the callback function of async
entries.
Original commit message from CVS:
2005-11-18 Andy Wingo <wingo@pobox.com>
* gst/net/gstnetclientclock.c (gst_net_client_clock_class_init):
Port goes all the way to MAXUINT16.
* gst/net/gstnettimeprovider.c: Make the port range the same as
for the kernel: 0 assigns, otherwise ports are less than
MAXUINT16.
* check/net/gstnettimeprovider.c: Adapt for 0 == kernel assigns
port change.
* check/net/gstnetclientclock.c (test_functioning): Add the start
of another test.
Original commit message from CVS:
2005-11-18 Andy Wingo <wingo@pobox.com>
* gst/net/gstnetclientclock.c (gst_net_client_clock_new): Adjust
the clock initially so it produces values around the base time.
(gst_net_client_clock_class_init): Typo fix.
(gst_net_client_clock_thread): Add note on when the socket gets
closed.
Original commit message from CVS:
* gst/net/gstnetclientclock.c: (do_linear_regression),
(gst_net_client_clock_do_select), (gst_net_client_clock_thread):
Fix compilation, uninitialized vars and a forgotten continue.
Original commit message from CVS:
2005-11-17 Andy Wingo <wingo@pobox.com>
* check/Makefile.am (check_PROGRAMS):
* check/net/gstnetclientclock.c: Add a most minimal test for the
net client clock. More to come later.
* gst/net/gstnet.h:
* gst/net/Makefile.am: Add netclientclock.
* gst/net/gstnetclientclock.h:
* gst/net/gstnetclientclock.c: New files, implement an untested
GstClock that takes its time from a network time provider.
Implements the algorithm in network-clock.scm.
* tests/network-clock.scm (*window-size*): Rename from
*queue-length*.
* tests/network-clock.scm (network-time):
* tests/network-clock-utils.scm (q-push): Update callers.
Original commit message from CVS:
2005-11-17 Andy Wingo <wingo@pobox.com>
* gst/gstclock.h (GstClock): Add rate and offset properties,
preserving ABI stability. Add rate/offset accessors. Will file bug
for the freeze break.
* gst/gstclock.c (gst_clock_adjust_unlocked): Implement using rate
and offset, trying to keep precision and avoiding
underflow/overflow.
(gst_clock_set_rate_offset, gst_clock_get_rate_offset): New
functions. Make gst_clock_set_time_adjust obsolete.
(gst_clock_set_time_adjust): Note that this function is obsolete.
Will file bug soon.
* gst/base/gstbasetransform.h: Make the ABI-stability hack
greppable by using GST_PADDING-1+1.
Original commit message from CVS:
2005-11-16 Andy Wingo <wingo@pobox.com>
* gst/net/Makefile.am:
* gst/net/gstnet.h:
* gst/net/gstnettimeprovider.c:
* gst/net/gstnettimeprovider.h: Use the timepacket stuff in the
provider, include it from gstnet.h, and add it to the build.
* gst/net/gstnettimepacket.h:
* gst/net/gstnettimepacket.c: New files, abstracts out the packet
sending and receiving.
Original commit message from CVS:
2005-11-16 Andy Wingo <wingo@pobox.com>
* gst/net/Makefile.am:
* gst/net/gstnet.h: New part of core to hold network elements and
objects. Put in core because it exposes API that applications want
to use. The library is named libgstnet-tempname right now because
of the existing libgstnet in gst-plugins-base. Solution is
probably to rename the one in plugins-base; will file a bug for
the freeze break.
* gst/net/gstnettimeprovider.c:
* gst/net/gstnettimeprovider.h: New object to export a GstClock's
get_time call over the network.
* configure.ac:
* gst/Makefile.am (lib_LTLIBRARIES): Add gstnet to the build.
* check/Makefile.am:
* check/net/gstnettimeprovider.c: A most minimal test suite. Will
get additions shortly.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_new_from_static_template):
* gst/gstpad.h:
add gst_pad_new_from_static_template functions
* gst/check/gstcheck.c: (gst_check_setup_src_pad),
(gst_check_setup_sink_pad):
* gst/elements/gsttee.c: (gst_tee_init):
and use them
Original commit message from CVS:
* gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buf),
(gst_base_transform_event):
Check if the caps are NULL, this can happen if the element
is shutting down and the pad caps are set to NULL.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_init):
* gst/elements/gsttypefindelement.c: (gst_type_find_element_init):
* gst/gstqueue.c: (gst_queue_init):
Free pad templates, fixes a couple of leaks.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
0 segment values are 0 in any format.
* gst/base/gstbasetransform.c: (gst_base_transform_event):
* gst/base/gstbasetransform.h:
Parse newsegment correctly in basetransform
* gst/elements/gstidentity.c: (gst_identity_transform_ip):
Sync to clock using updated segment values.
Original commit message from CVS:
2005-11-14 Julien MOUTTE <julien@moutte.net>
* gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buf):
Ref the source pad caps while we need them.
Fixes (#321386)
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
Added some docs for GstCollectData.
* gst/base/gstadapter.c:
Some small code example fix.
* gst/base/gstcollectpads.c:
* gst/base/gstcollectpads.h:
Document some more.
Original commit message from CVS:
* gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buf),
(gst_base_transform_handle_buffer):
Small cleanups.
If we're processing a buffer and need to allocate an output
buffer, we cannot accept a format change. If we did get a
format change, we have to alloc a buffer ourselves of the
right size.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_do_sync):
Don't sync on buffers that fall partially outside our current
segment. Prevents an assertion failure/abort playing some files.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps):
* gst/gstcaps.c: (gst_caps_intersect):
Don't call gst_caps_do_simplify - it doesn't respect order of caps
and it's not needed.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_do_sync):
* gst/base/gstbasesrc.c: (gst_base_src_wait),
(gst_base_src_do_sync), (gst_base_src_get_range):
Implement clock sync in base class.
Original commit message from CVS:
2005-11-09 Andy Wingo <wingo@pobox.com>
* gst/base/gstbasesink.c: Add the beginning of docs here -- have
to work on something else now tho...
Original commit message from CVS:
2005-11-09 Andy Wingo <wingo@pobox.com>
* gst/elements/gstfilesink.c (gst_file_sink_start)
(gst_file_sink_stop): New functions, replace the state change
handler.
(gst_file_sink_class_init): Hook up the start and stop functions.
(gst_file_sink_base_init): Don't set the state change handler any
more. It was a bit ugly too, being set from here...
(gst_file_sink_get_property, gst_file_sink_set_property):
Cleanups...
(gst_file_sink_set_location): More robust check that doesn't call
GST_STATE. Ugggggg.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_event):
Hold STREAM_LOCK while pushing newsegment or tag events as well.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_init),
(gst_base_src_get_range):
Set the segment_end to -1 initially. Fixed typefind.
Original commit message from CVS:
* gst/base/gstadapter.c:
Debug category should be 'adapter', not 'GstAdapter'.
* gst/base/gstcollectpads.c: (gst_collectpads_base_init),
(gst_collectpads_class_init), (gst_collectpads_init),
(gst_collectpads_peek), (gst_collectpads_pop),
(gst_collectpads_event), (gst_collectpads_chain):
Add debug category and some debugging output. Use boilerplate
macros. Remove some extraneous words from docs.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_get_range):
Check if we are doing a segment seek and have arrived at the
end of that segment.
Original commit message from CVS:
* check/states/sinks.c: (GST_START_TEST):
Uncomment fixed check.
* docs/design/part-TODO.txt:
Updated TODO.
* gst/base/gstbasesink.c: (gst_base_sink_commit_state),
(gst_base_sink_handle_object), (gst_base_sink_do_sync),
(gst_base_sink_get_position):
If we are going to PLAYING, post the right pending state
when we post the intermediate paused message.
* gst/gstelement.c: (gst_element_continue_state),
(gst_element_set_state_func), (gst_element_change_state):
Don't post state changes that were between the same state
and were not ASYNC.
Original commit message from CVS:
* check/states/sinks.c: (GST_START_TEST), (gst_object_suite):
Added some more checks. Specifically the case where NO_PREROLL
elements are in the pipeline.
* gst/base/gstbasesink.c: (gst_base_sink_commit_state),
(gst_base_sink_handle_object), (gst_base_sink_do_sync),
(gst_base_sink_get_position):
Post READY->PAUSED state change messages too.
Fix bug where VOID was posted as pending state...
* gst/gstbin.c: (gst_bin_recalc_state):
use _element_continue_state() to continue the state change.
* gst/gstelement.c: (gst_element_continue_state),
(gst_element_commit_state), (gst_element_set_state_func),
(gst_element_change_state), (gst_element_change_state_func):
Lots of state change cleanups, assign the STATE_RETURN in
a new continue_state() function that also propagates the
last return value from a state change to the app.
Update some debug statements with proper category.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_class_init),
(gst_base_transform_init):
Don't leak class.
* gst/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_loop):
An EOS event marks the queue as completely filled.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_do_sync), (gst_base_sink_get_position):
Some more debugging.
* gst/base/gstbasetransform.c: (gst_base_transform_finalize),
(gst_base_transform_init), (gst_base_transform_buffer_alloc),
(gst_base_transform_event), (gst_base_transform_getrange),
(gst_base_transform_chain):
* gst/base/gstbasetransform.h:
Fix debugging,
Protect transform and concurrent buffer alloc with a new lock.
Try not to break ABI/API.
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
An extra refcount is taken in basesrc.
* gst/base/gstbasesrc.c: (gst_base_src_init), (gst_base_src_query),
(gst_base_src_get_range), (gst_base_src_pad_get_range),
(gst_base_src_loop):
Small cleanups, check for flushing after being unlocked from the
LIVE_LOCK. take refcounts correctly (not yet everywhere).
Don't send out EOS when going to READY.