Commit graph

811 commits

Author SHA1 Message Date
Wim Taymans
3dc7e60a90 libs/gst/base/gstcollectpads.c: Update docs.
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_collect),
(gst_collect_pads_collect_range), (gst_collect_pads_available),
(gst_collect_pads_check_pads), (gst_collect_pads_check_collected),
(gst_collect_pads_event), (gst_collect_pads_chain):
Update docs.
Better debug info.
Catch and return errors from the collect function
Refuse data on eos pads.
2006-05-10 11:24:55 +00:00
Wim Taymans
ce4d0980f1 libs/gst/base/gstcollectpads.*: Clean up the mess that is collectpads, add comments and
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_init),
(gst_collect_pads_finalize), (gst_collect_pads_add_pad),
(gst_collect_pads_remove_pad), (gst_collect_pads_set_flushing),
(gst_collect_pads_start), (gst_collect_pads_stop),
(gst_collect_pads_peek), (gst_collect_pads_pop),
(gst_collect_pads_available), (gst_collect_pads_read),
(gst_collect_pads_flush), (gst_collect_pads_check_pads),
(gst_collect_pads_is_collected), (gst_collect_pads_event),
(gst_collect_pads_chain):
* libs/gst/base/gstcollectpads.h:
Clean up the mess that is collectpads, add comments and
FIXMEs where needed.
Maintain a separate pad list so we can add pads while
collecting the other ones. For this we need a new separate
lock (see comics).
Fix memory leak in finalize.
Refactor some weird code to set/unset pad flushing flags, mark
with comments.
Don't crash in _available, _read, _flush when we're EOS.
* tests/check/libs/.cvsignore:
Ignore adapter check binary.
2006-05-09 20:47:23 +00:00
Wim Taymans
d1c7a91f20 libs/gst/base/gstbasesrc.c: Always push non-flushing serialized events in the streaming thread.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek),
(gst_base_src_loop), (gst_base_src_change_state):
Always push non-flushing serialized events in the streaming
thread.
2006-05-08 17:03:13 +00:00
Thomas Vander Stichele
38d144fcb3 whitespace, comment, doc fixup
Original commit message from CVS:
whitespace, comment, doc fixup
2006-05-08 15:53:12 +00:00
Jan Schmidt
9d3f628b81 libs/gst/base/gstbasesink.c: Add applied_rate to the debug
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_configure_segment):
Add applied_rate to the debug
* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek):
Copy applied_rate into the outgoing NEWSEGMENT event
2006-05-08 14:55:26 +00:00
Philippe Rouquier
246712327d libs/gst/base/gstbasesink.c: call ::unlock before taking the PREROLL_LOCK so we can safely handle elements that lock ...
Original commit message from CVS:
Patch by: Philippe Rouquier <philippero at libertysurf dot fr>
* libs/gst/base/gstbasesink.c: (gst_base_sink_set_flushing),
(gst_base_sink_change_state):
call ::unlock before taking the PREROLL_LOCK so we can safely
handle elements that lock in ::render.
Fixes #340174.
2006-05-08 11:49:43 +00:00
Wim Taymans
c2371ecece libs/gst/base/gstbasesrc.c: Unify error handling, don't post an error message when a push() returns EOS but perform o...
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_loop):
Unify error handling, don't post an error message
when a push() returns EOS but perform our normal EOS
handling code. Fixes #340772.
2006-05-08 11:35:29 +00:00
Wim Taymans
b9dbb55105 docs/design/part-overview.txt: Make upsteam/downstream concepts more clear.
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.
2006-05-08 09:52:33 +00:00
Wim Taymans
029c8d820b libs/gst/base/gstbasesink.c: Store the sync time of the buffer end position separatly in a new variable eos_rtime so ...
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times),
(gst_base_sink_do_sync), (gst_base_sink_chain_unlocked),
(gst_base_sink_get_position), (gst_base_sink_change_state):
Store the sync time of the buffer end position separatly in a
new variable eos_rtime so we can properly sync the EOS event.
Fixes #340697.
Fix the docs for gst_base_sink_set_qos_enabled().
Don't set segment start to invalid value when we receive a
non TIME newsegment.
get closer to handling position reporting for negative rates
correctly.
2006-05-08 09:16:01 +00:00
James Andrewartha
5deab8d3c3 Make sure gstprivate.h and/or config.h are always included first, otherwise some of our defines (like _FILE_OFFSET_BI...
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).
2006-05-04 15:20:14 +00:00
Wim Taymans
4ceea3e44e docs/libs/gstreamer-libs-sections.txt: API: addition: gst_adapter_take_buffer()
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
API: addition: gst_adapter_take_buffer()
* libs/gst/base/gstadapter.c: (gst_adapter_push),
(gst_adapter_peek), (gst_adapter_take), (gst_adapter_take_buffer),
(gst_adapter_available_fast):
* libs/gst/base/gstadapter.h:
Prepare for optimizing the hell out of this hugely inefficient
piece of code.
Added gst_adapter_take_buffer() so we can at least start thinking
about subbuffering and merging.
Added some comments.
* tests/check/Makefile.am:
* tests/check/libs/adapter.c: (GST_START_TEST),
(gst_adapter_suite), (main):
Added GstAdapter check.
2006-05-04 14:19:53 +00:00
Thomas Vander Stichele
da6dcf9a64 docs/libs/gstreamer-libs-sections.txt: make sure GstBaseTransformClass shows up in the docs
Original commit message from CVS:

* docs/libs/gstreamer-libs-sections.txt:
make sure GstBaseTransformClass shows up in the docs
* libs/gst/base/gstbasetransform.c:
* libs/gst/base/gstbasetransform.h:
move docs so gtk-doc picks it up now
2006-05-03 16:45:11 +00:00
Thomas Vander Stichele
493b84107d whitespace removal and width coercion
Original commit message from CVS:
whitespace removal and width coercion
2006-05-03 16:42:08 +00:00
Stefan Kost
e99b5f24e9 libs/gst/base/gstcollectpads.c: back out the newsegment handling change, see #340060 for ongoing discussion
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_event):
back out the newsegment handling change, see #340060 for ongoing
discussion
2006-05-02 17:17:22 +00:00
Stefan Kost
d3211824bd libs/gst/base/gstcollectpads.c: fix changelog entry about last collectpads change, add notes about proper fix
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_event):
fix changelog entry about last collectpads change,
add notes about proper fix
2006-04-28 20:55:33 +00:00
Stefan Kost
4852eda85a libs/gst/base/: more detailed debug and formatting cleanup
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_event):
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_base_init),
(gst_collect_pads_is_collected), (gst_collect_pads_event):
more detailed debug and formatting cleanup
2006-04-28 18:48:38 +00:00
Stefan Kost
992e992730 libs/gst/controller/gstcontroller.c: some little tuning
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c:
(gst_controller_sync_values):
some little tuning
* tests/check/libs/controller.c: (GST_START_TEST),
(gst_controller_suite):
a new test for live value handling
2006-04-28 17:33:41 +00:00
Michael Smith
700f5d074f libs/gst/dataprotocol/dataprotocol.c: Fixes in reading/writing events over GDP (not currently used?) - dereferencing ...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
(gst_dp_event_from_packet):
Fixes in reading/writing events over GDP (not currently used?) -
dereferencing NULL events for unknown/invalid event types, memory
leak, and change g_warning to GST_WARNING.
2006-04-28 13:40:15 +00:00
Wim Taymans
ca144eb425 libs/gst/base/gstbasesink.c: When frame dropping is enabled, we should not ignore frames without a duration.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_is_too_late),
(gst_base_sink_do_render_stats), (gst_base_sink_render_object),
(gst_base_sink_get_position), (gst_base_sink_change_state):
When frame dropping is enabled, we should not ignore frames
without a duration.
Update some documentation.
2006-04-28 13:25:58 +00:00
Wim Taymans
d681c7ab62 libs/gst/base/gstbasesrc.c: Documentation updates.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek),
(gst_base_src_send_event), (gst_base_src_change_state):
Documentation updates.
2006-04-28 13:18:41 +00:00
Tim-Philipp Müller
72845a47e6 libs/gst/controller/gstcontroller.c: Free allocated GstTimedValues when freeing list nodes.
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c: (gst_controller_unset),
(gst_controller_unset_all):
Free allocated GstTimedValues when freeing list nodes.
Should fix leaks 'make check-valgrind' complains about.
* win32/common/libgstcontroller.def:
Add gst_controller_unset_all.
2006-04-12 10:28:53 +00:00
Stefan Kost
3512929a5c Added new method _unset_all() and fixed _unset()
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/controller/gstcontroller.c: (gst_controller_unset),
(gst_controller_unset_all):
* libs/gst/controller/gstcontroller.h:
Added new method _unset_all() and fixed _unset()
* tests/check/libs/controller.c: (GST_START_TEST),
(gst_controller_suite):
Added two testcases for new and fixed method
2006-04-11 21:07:26 +00:00
Tim-Philipp Müller
7916e14a25 libs/gst/net/gstnettimepacket.c: MSG_DONTWAIT is not defined on Cygwin, so work around that (fixes #317048).
Original commit message from CVS:
* libs/gst/net/gstnettimepacket.c: (gst_net_time_packet_send):
MSG_DONTWAIT is not defined on Cygwin, so work
around that (fixes #317048).
2006-04-11 18:43:04 +00:00
Wim Taymans
c2d86926f5 gst/gstsegment.c: Added some more docs.
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.
2006-04-10 10:46:44 +00:00
Sébastien Moutte
78ee95a508 gst/gst_private.h: add a new #ifdef to use __declspec(dllimport) only for other modules and not for gstreamer core
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
2006-04-09 16:57:34 +00:00
Stefan Kost
77a5695718 Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)
Original commit message from CVS:
* gst/gstbuffer.c: (gst_subbuffer_class_init):
* gst/gstclock.c: (gst_clock_class_init):
* gst/gstelement.c: (gst_element_class_init):
* gst/gstindex.c: (gst_index_class_init):
* gst/gstindexfactory.c: (gst_index_factory_class_init):
* gst/gstobject.c: (gst_object_class_init),
(gst_signal_object_class_init):
* gst/gstpad.c: (gst_pad_class_init):
* gst/gstpadtemplate.c: (gst_pad_template_class_init):
* gst/gstpluginfeature.c: (gst_plugin_feature_class_init):
* gst/gstregistry.c: (gst_registry_class_init):
* gst/gstsystemclock.c: (gst_system_clock_class_init):
* gst/gsttask.c: (gst_task_class_init):
* gst/gstxml.c: (gst_xml_class_init):
* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init):
* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
(gst_base_src_loop):
* libs/gst/controller/gstcontroller.c:
(_gst_controller_class_init):
* plugins/elements/gstfdsrc.c: (gst_fd_src_class_init):
* plugins/indexers/gstfileindex.c: (gst_file_index_class_init):
* plugins/indexers/gstmemindex.c: (gst_mem_index_class_init):
* tests/old/examples/plugins/example.c: (gst_example_class_init):
* tests/old/testsuite/threads/signals.c: (gst_test_class_init):
Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent)
2006-04-08 20:57:31 +00:00
Stefan Kost
7e2286d79c Fix broken GObject macros
Original commit message from CVS:
* gst/gstindex.h:
* gst/gstxml.h:
* libs/gst/base/gstadapter.h:
* libs/gst/base/gstbasesink.h:
* libs/gst/base/gstbasesrc.h:
* libs/gst/base/gstbasetransform.h:
* libs/gst/base/gstcollectpads.h:
* libs/gst/base/gstpushsrc.h:
Fix broken GObject macros
2006-04-08 18:05:16 +00:00
Wim Taymans
92b7dfef7d libs/gst/base/gstbasesink.c: Initialize start and stop times, thanks valgrind.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times):
Initialize start and stop times, thanks valgrind.
2006-04-07 15:19:08 +00:00
Wim Taymans
902e249e88 libs/gst/base/gstbasesink.c: Be a bit nicer to badly behaving upstream elements that expect us to deal with non TIME ...
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times):
Be a bit nicer to badly behaving upstream elements that expect
us to deal with non TIME segments and timestamps (such as fakesrc
in the testsuite).
2006-04-07 14:50:06 +00:00
Wim Taymans
9a897acec0 gst/gstbus.c: Small documentation clarification about the signal watch.
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.
2006-04-07 14:02:12 +00:00
Andy Wingo
75b96e0efd gst/gstpad.c (gst_pad_set_blocked_async): More debug. libs/gst/base/gstbasetransform.c
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.
2006-04-05 10:26:29 +00:00
Jan Schmidt
fb8ad07b59 Documentation updates. Make BaseSink and BaseSrc docs contain the class structure so that people can actually see the...
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.
2006-04-04 14:58:50 +00:00
Wim Taymans
0a4ba6610f libs/gst/base/gstbasesink.c: More QoS measurements as described in the design doc.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_init),
(gst_base_sink_finalize), (gst_base_sink_set_qos_enabled),
(gst_base_sink_is_qos_enabled), (gst_base_sink_do_sync),
(gst_base_sink_record_qos_observation),
(gst_base_sink_perform_qos), (gst_base_sink_reset_qos),
(gst_base_sink_is_too_late), (gst_base_sink_render_object),
(gst_base_sink_change_state):
More QoS measurements as described in the design doc.
Get rid of ringbuffer with observations, running average is
more simple and equally good.
Calculates valid proportion now.
Added beginning of flood measurement.
2006-03-30 16:36:12 +00:00
Wim Taymans
72d0c78c0f libs/gst/base/gstbasesrc.c: Perform the EOS logic when we reach the segment stop position.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_finalize),
(gst_base_src_send_event), (gst_base_src_loop),
(gst_base_src_change_state):
Perform the EOS logic when we reach the segment stop position.
Fix compilation on gcc4.1
2006-03-29 13:39:05 +00:00
Wim Taymans
6b3b2678bb libs/gst/base/gstbasesrc.c: Handle element seek correctly when we are streaming.
Original commit message from CVS:
Inspired by a patch of: Lutz Mueller <lutz at topfrose dot de>
* libs/gst/base/gstbasesrc.c: (gst_base_src_finalize),
(gst_base_src_send_event), (gst_base_src_change_state):
Handle element seek correctly when we are streaming.
Fixes #326998.
2006-03-27 11:48:10 +00:00
Stefan Kost
6a55dddc1c libs/gst/base/gstcollectpads.c: more debug details
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_is_collected):
more debug details
2006-03-24 17:10:46 +00:00
Wim Taymans
171d23cf77 libs/gst/base/gstbasesink.h: Only add fields, not insert or we break ABI.
Original commit message from CVS:
* libs/gst/base/gstbasesink.h:
Only add fields, not insert or we break ABI.
2006-03-24 09:48:33 +00:00
Wim Taymans
3a21be3b8c libs/gst/base/gstbasesink.c: Decouple max-lateness and the fact that QoS messages are generated with a new property (...
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_init), (gst_base_sink_finalize),
(gst_base_sink_set_qos_enabled), (gst_base_sink_is_qos_enabled),
(gst_base_sink_set_property), (gst_base_sink_get_property),
(gst_base_sink_commit_state), (gst_base_sink_get_sync_times),
(gst_base_sink_wait_clock), (gst_base_sink_do_sync),
(gst_base_sink_add_qos_observation), (gst_base_sink_send_qos),
(gst_base_sink_perform_qos), (gst_base_sink_reset_qos),
(gst_base_sink_is_too_late), (gst_base_sink_render_object),
(gst_base_sink_preroll_object), (gst_base_sink_event),
(gst_base_sink_chain_unlocked), (gst_base_sink_get_position_last),
(gst_base_sink_get_position_paused), (gst_base_sink_get_position),
(gst_base_sink_query), (gst_base_sink_change_state):
Decouple max-lateness and the fact that QoS messages are generated
with a new property (qos).
Add vmethod so subclasses can be notified of ASYNC playing
state changes.
Collect timestamp start and stop to report better current
position in EOS/PLAYING/PAUSED/READY/NULL.
Refactor QoS/frame dropping and other measurements.
API: GstBaseSrc::qos
* libs/gst/base/gstbasesink.h:
Added Private struct.
API: gst_base_sink_set_qos_enabled
API: gst_base_sink_is_qos_enabled
2006-03-23 16:20:40 +00:00
Edward Hervey
ac377b0cdc Series of fixes for dereferenced pointers that gcc 4.1 complains about.
Original commit message from CVS:
reviewed by: <delete if not using a buddy>
* gst/gstbin.c: (gst_bin_dispose), (gst_bin_provide_clock_func),
(gst_bin_handle_message_func):
* gst/gstclock.c: (gst_clock_dispose), (gst_clock_set_master):
* gst/gstelement.c: (gst_element_set_clock), (gst_element_dispose),
(gst_element_set_bus_func):
* gst/gstghostpad.c: (gst_proxy_pad_dispose):
* gst/gstminiobject.c: (gst_value_set_mini_object),
(gst_value_take_mini_object):
* gst/gstpad.c: (gst_pad_set_pad_template):
* gst/gstpipeline.c: (gst_pipeline_dispose),
(gst_pipeline_use_clock), (gst_pipeline_auto_clock):
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_pop),
(gst_collect_pads_chain):
* libs/gst/net/gstnettimeprovider.c:
(gst_net_time_provider_set_property):
Series of fixes for dereferenced pointers that gcc 4.1 complains about.
It's in fact all issues with gst_*object_replace().
2006-03-21 14:14:49 +00:00
Wim Taymans
006b34dc3f libs/gst/base/gstadapter.c: Add some docs.
Original commit message from CVS:
* libs/gst/base/gstadapter.c:
Add some docs.
2006-03-15 16:22:26 +00:00
Wim Taymans
1d86546801 libs/gst/base/gstbasesink.c: Better debug info when we receive a segment event.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_configure_segment),
(gst_base_sink_get_sync_times), (gst_base_sink_wait_clock),
(gst_base_sink_do_sync), (gst_base_sink_do_qos):
Better debug info when we receive a segment event.
Reorganize a bit so we can pass the get_times() results around.
Use the segment format when calculating the running time.
Don't do QoS is sync is disabled or we have no clock or the
element does not want us to sync to the clock.
Don't drop buffers if QoS is disabled for now.
2006-03-14 19:36:05 +00:00
Tim-Philipp Müller
9394a81b82 libs/gst/base/gstbasesink.c: Can't use gst_segment_to_running_time() when the segment is not in GST_TIME_FORMAT (like...
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times):
Can't use gst_segment_to_running_time() when the segment
is not in GST_TIME_FORMAT (like with filesink, for example).
Stops flac encoding pipelines from spewing critical warnings
at EOS (#331248).
2006-03-14 18:25:54 +00:00
Wim Taymans
926ef9413a libs/gst/base/gstbasesink.c: Separate QoS calculation.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_do_sync),
(gst_base_sink_do_qos):
Separate QoS calculation.
Only drop buffers when lateness is bigger than the
duration of the buffer.
2006-03-14 11:18:07 +00:00
Wim Taymans
1dcaa1fc4b libs/gst/base/gstbasetransform.*: Make basetransform virtual method for src events too.
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_class_init), (gst_base_transform_init),
(gst_base_transform_sink_event),
(gst_base_transform_sink_eventfunc),
(gst_base_transform_src_event), (gst_base_transform_src_eventfunc),
(gst_base_transform_handle_buffer), (gst_base_transform_chain),
(gst_base_transform_set_property),
(gst_base_transform_get_property),
(gst_base_transform_change_state), (gst_base_transform_update_qos),
(gst_base_transform_set_qos_enabled),
(gst_base_transform_is_qos_enabled):
* libs/gst/base/gstbasetransform.h:
Make basetransform virtual method for src events too.
Handle QOS in basetransform.
API: gst_base_transform_update_qos
API: gst_base_transform_set_qos_enabled
API: gst_base_transform_is_qos_enabled
2006-03-13 11:27:57 +00:00
Wim Taymans
7c9402d5ab libs/gst/base/gstbasesink.c: Small cleanups.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_init),
(gst_base_sink_do_sync):
Small cleanups.
Use QOS debug category.
2006-03-13 11:16:45 +00:00
Thomas Vander Stichele
1fc26101c0 libs/gst/net/gstnettimeprovider.c: fix docs
Original commit message from CVS:

* libs/gst/net/gstnettimeprovider.c:
fix docs
* win32/common/config.h:
update
2006-03-12 20:40:19 +00:00
Thomas Vander Stichele
485f6d33cd log what we're waiting on
Original commit message from CVS:
log what we're waiting on
2006-03-10 19:12:01 +00:00
Michael Smith
70df662991 libs/gst/dataprotocol/dataprotocol.c: Fix docs for dataprocotol to not get the return types completely wrong for a fe...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
Fix docs for dataprocotol to not get the return types completely
wrong for a few functions.
2006-03-10 15:30:27 +00:00
Wim Taymans
99a61247bc gst/gstclock.*: Review docs.
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.
2006-03-09 11:45:14 +00:00
Tim-Philipp Müller
b53dc49d8d libs/gst/base/gsttypefindhelper.c: If we are provided with the size, we should implement
Original commit message from CVS:
* libs/gst/base/gsttypefindhelper.c: (helper_find_get_length),
(gst_type_find_helper_get_range):
If we are provided with the size, we should implement
GstTypeFind::get_length, so that typefind functions who
want to can actually peek at the middle of a file.
2006-03-09 10:46:35 +00:00
Wim Taymans
3f3536bf73 docs/design/part-element-transform.txt: Added some docs about the design of tranform elements.
Original commit message from CVS:
* docs/design/part-element-transform.txt:
Added some docs about the design of tranform elements.
* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek),
(gst_base_src_loop), (gst_base_src_change_state):
Mark buffers with the DISCONT flag.
2006-03-08 13:44:55 +00:00
Wim Taymans
21a646d674 libs/gst/base/gstbasetransform.c: Cleanups, separate normal flow from errors, add sensible
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_transform_caps),
(gst_base_transform_transform_size),
(gst_base_transform_prepare_output_buffer),
(gst_base_transform_get_unit_size),
(gst_base_transform_buffer_alloc),
(gst_base_transform_handle_buffer),
(gst_base_transform_change_state):
Cleanups, separate normal flow from errors, add sensible
DEBUG lines.
Don't try to renegotiate when allocating an output buffer.
Also copy DISCONT buffer flag when copying a buffer.
Reset the transform after we finish streaming, not during.
2006-03-08 10:17:41 +00:00
Wim Taymans
06aa56aca4 libs/gst/base/gstbasesink.c: Use last buffer timestamp in qos message.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_do_sync):
Use last buffer timestamp in qos message.
2006-03-08 09:46:54 +00:00
Wim Taymans
7a88e2a762 docs/libs/gstreamer-libs-sections.txt: Added basesink new methods.
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.
2006-03-07 16:21:02 +00:00
Wim Taymans
c45bd3fb9f Fix #333669, Add pad accessor defines for GstBaseTransform
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstbasetransform.h:
Fix #333669, Add pad accessor defines for GstBaseTransform
Fix docs for GstBaseSrc.
2006-03-07 15:14:51 +00:00
Wim Taymans
37d77aaeee Small documentation fixes.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstbuffer.h:
* gst/gstvalue.c:
* libs/gst/base/gstbasetransform.h:
Small documentation fixes.
2006-03-07 15:08:57 +00:00
Tim-Philipp Müller
7789e9eb94 libs/gst/base/gstpushsrc.c: Push sources don't support pull mode by default.
Original commit message from CVS:
* libs/gst/base/gstpushsrc.c: (gst_push_src_class_init),
(gst_push_src_check_get_range):
Push sources don't support pull mode by default.
2006-03-07 09:28:44 +00:00
Tim-Philipp Müller
b5161fda6a libs/gst/base/gstbasesrc.*: Add ::check_get_range() vfunc to GstBaseSrc (#332611), provide default implementation, an...
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
(gst_base_src_init), (gst_base_src_pad_check_get_range),
(gst_base_src_default_check_get_range):
* libs/gst/base/gstbasesrc.h:
Add ::check_get_range() vfunc to GstBaseSrc (#332611),
provide default implementation, and rename
gst_base_src_check_get_range() to
gst_base_src_pad_check_get_range() for clarity.
2006-03-06 19:55:06 +00:00
Wim Taymans
991af9aab5 libs/gst/base/gstbasesink.c: Make property overridable.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init):
Make property overridable.
2006-03-06 16:10:42 +00:00
Wim Taymans
3290a06b36 libs/gst/base/gstbasesink.*: Make max-lateness a property.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_init), (gst_base_sink_set_property),
(gst_base_sink_get_property), (gst_base_sink_do_sync):
* libs/gst/base/gstbasesink.h:
Make max-lateness a property.
2006-03-06 16:02:37 +00:00
Wim Taymans
6367b03096 libs/gst/base/gstbasesink.c: Don't ever draw a frame that is >10ms late.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_wait_clock),
(gst_base_sink_do_sync), (gst_base_sink_render_object):
Don't ever draw a frame that is >10ms late.
2006-03-06 15:16:23 +00:00
Tim-Philipp Müller
19e9145a5c libs/gst/base/gstbasetransform.c: Make sure caps are writable before passing them to gst_caps_append().
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_transform_caps):
Make sure caps are writable before passing them to
gst_caps_append().
2006-03-05 20:56:55 +00:00
Tim-Philipp Müller
eeec129c6f New API: gst_type_find_helper_get_range() (#333042).
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gsttypefindhelper.c: (helper_find_peek),
(helper_find_suggest), (gst_type_find_helper_get_range),
(gst_type_find_helper):
* libs/gst/base/gsttypefindhelper.h:
New API: gst_type_find_helper_get_range() (#333042).
2006-03-02 13:45:32 +00:00
Tim-Philipp Müller
aad2aa1288 libs/gst/base/gsttypefindhelper.c: Try typefinding factories with the highest rank first.
Original commit message from CVS:
* libs/gst/base/gsttypefindhelper.c: (type_find_factory_rank_cmp),
(gst_type_find_helper):
Try typefinding factories with the highest rank first.
2006-02-27 19:45:31 +00:00
Tim-Philipp Müller
cc13a984eb Add section for typefind helper and add documentation for the old and the new function.
Original commit message from CVS:
* docs/libs/gstreamer-libs-docs.sgml:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gsttypefindhelper.c:
Add section for typefind helper and add documentation
for the old and the new function.
2006-02-27 19:19:40 +00:00
Tim-Philipp Müller
991aa71ffb libs/gst/base/gsttypefindhelper.*: New API: gst_type_find_helper_for_buffer() (#332723).
Original commit message from CVS:
* libs/gst/base/gsttypefindhelper.c: (buf_helper_find_peek),
(buf_helper_find_suggest), (type_find_factory_rank_cmp),
(gst_type_find_helper_for_buffer):
* libs/gst/base/gsttypefindhelper.h:
New API: gst_type_find_helper_for_buffer() (#332723).
2006-02-27 18:43:26 +00:00
Tim-Philipp Müller
32aff01e8d libs/gst/base/gstbasesrc.c: Document how applications can stop recording from live sources (see #330996).
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c:
Document how applications can stop recording from
live sources (see #330996).
2006-02-24 10:57:42 +00:00
Tim-Philipp Müller
47f2709514 libs/gst/base/gstbasesrc.*: Don't unconditionally send EOS when going from PAUSED to
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
(gst_base_src_init), (gst_base_src_loop),
(gst_base_src_activate_push), (gst_base_src_activate_pull),
(gst_base_src_change_state):
* libs/gst/base/gstbasesrc.h:
Don't unconditionally send EOS when going from PAUSED to
READY state, esp. make sure we don't send two EOS events
in some cases (e.g. one when reaching EOS and one when
going from PAUSED to READY). Also, we don't want to send
EOS events when operating in pull mode. However, we do
want to send an EOS event when shutting down a live
source explicitly, for example (fixes #330996).
2006-02-23 16:24:36 +00:00
Julien Moutte
4bcfb92b9a libs/gst/base/gstbasetransform.c: Fix a stupid bug. I was sure i compiled that.
Original commit message from CVS:


* libs/gst/base/gstbasetransform.c:
(gst_base_transform_change_state): Fix a stupid bug. I was
sure i compiled that.
------------------------------------------------------
2006-02-20 16:07:42 +00:00
Julien Moutte
2c04844949 libs/gst/base/gstbasetransform.c: Make basetransform reusable. (Closes #331898)
Original commit message from CVS:


* libs/gst/base/gstbasetransform.c:
(gst_base_transform_change_state): Make basetransform reusable.
(Closes #331898)
------------------------------------------------------
2006-02-20 15:01:14 +00:00
Wim Taymans
c1b135b4a3 Docs fixes.
Original commit message from CVS:
* gst/gstbuffer.c:
* gst/gstquery.c: (gst_query_list_add_format),
(gst_query_set_formatsv), (gst_query_parse_formats_length),
(gst_query_parse_formats_nth):
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times):
Docs fixes.
2006-02-14 13:07:10 +00:00
Wim Taymans
b37766658e docs/design/part-TODO.txt: Updated TODO list, basesrc supports seeking to non-bytes formats.
Original commit message from CVS:
* docs/design/part-TODO.txt:
Updated TODO list, basesrc supports seeking to non-bytes
formats.

* docs/design/part-element-sink.txt:
Update docs.

* gst/gstbin.c: (bin_replace_message),
(gst_bin_handle_message_func):
* gst/gstbus.c: (gst_bus_post), (gst_bus_pop):
* gst/gstevent.c: (gst_event_finalize):
* gst/gstpad.c: (gst_pad_event_default_dispatch),
(gst_pad_send_event):
Use shiny new _TYPE_NAME macros.

* libs/gst/base/gstbasesrc.c: (gst_base_src_get_range):
Move debug statement up.

* gst/gstelement.c: (gst_element_set_locked_state):
Add some debugging.
2006-02-13 11:52:43 +00:00
Andy Wingo
55ff7942ee libs/gst/base/gstcollectpads.c (gst_collect_pads_chain): Only update last_stop if we're in TIME format and the timest...
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.
2006-02-07 15:49:40 +00:00
Andy Wingo
e8f2242503 libs/gst/base/gstbasesink.c (gst_base_sink_chain_unlocked): Only warn if sync=true.
Original commit message from CVS:
2006-02-07  Andy Wingo  <wingo@pobox.com>

* libs/gst/base/gstbasesink.c (gst_base_sink_chain_unlocked): Only
warn if sync=true.
2006-02-07 13:20:16 +00:00
Tim-Philipp Müller
1da556ed26 libs/gst/base/gstbasesrc.c: Send EOS event when stopping.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_change_state):
Send EOS event when stopping.
2006-02-06 14:57:40 +00:00
Julien Moutte
14de34d6ec libs/gst/base/gstcollectpads.c: Collectpads now holds a reference to the GstPad that was added. Indeed we don't want ...
Original commit message from CVS:
2006-02-05  Julien MOUTTE  <julien@moutte.net>

* libs/gst/base/gstcollectpads.c: (gst_collect_pads_finalize),
(gst_collect_pads_add_pad), (gst_collect_pads_remove_pad),
(gst_collect_pads_start), (gst_collect_pads_stop),
(gst_collect_pads_event): Collectpads now holds a reference
to the GstPad that was added. Indeed we don't want to look
at pads that might just go away with no warning...
2006-02-05 18:13:28 +00:00
Julien Moutte
eafd3ff391 libs/gst/base/gstcollectpads.*: Handle flush. Adapted from
Original commit message from CVS:
2006-02-05  Julien MOUTTE  <julien@moutte.net>

* libs/gst/base/gstcollectpads.c: (gst_collect_pads_add_pad),
(gst_collect_pads_start), (gst_collect_pads_stop),
(gst_collect_pads_event), (gst_collect_pads_chain):
* libs/gst/base/gstcollectpads.h: Handle flush. Adapted from
Mark Nauwelaerts's patch on bug #328491.
2006-02-05 16:18:37 +00:00
Wim Taymans
d5c530e34f libs/gst/base/gstbasesink.c: Only keep track of prerollable items when we are prerolling.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_do_sync),
(gst_base_sink_render_object),
(gst_base_sink_queue_object_unlocked):
Only keep track of prerollable items when we are
prerolling.
Before rendering after preroll, always check if we
have queued items.
Added some more debugging.
2006-02-02 16:12:35 +00:00
Wim Taymans
be1f48de3a docs/design/part-element-sink.txt: Updated document.
Original commit message from CVS:
* docs/design/part-element-sink.txt:
Updated document.

* libs/gst/base/gstbasesink.c: (gst_base_sink_init),
(gst_base_sink_finalize), (gst_base_sink_preroll_queue_flush),
(gst_base_sink_configure_segment), (gst_base_sink_commit_state),
(gst_base_sink_get_sync_times), (gst_base_sink_wait_clock),
(gst_base_sink_do_sync), (gst_base_sink_render_object),
(gst_base_sink_preroll_object),
(gst_base_sink_queue_object_unlocked),
(gst_base_sink_queue_object), (gst_base_sink_event),
(gst_base_sink_chain_unlocked), (gst_base_sink_chain),
(gst_base_sink_loop), (gst_base_sink_activate_pull),
(gst_base_sink_get_position), (gst_base_sink_change_state):
* libs/gst/base/gstbasesink.h:
Totally refactored matching the design doc.
Use two segments, one to clip incomming buffers and another to
perform sync.
Handle queueing correctly, bypass the queue when playing.
Make EOS cancelable.
Handle errors correctly when operating in pull based mode.

* tests/check/elements/fakesink.c: (GST_START_TEST),
(fakesink_suite):
Added new check for sinks.
2006-02-02 12:07:48 +00:00
Stefan Kost
dad303a342 docs/: more dparam docs
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
2006-01-31 16:56:28 +00:00
Stefan Kost
a768c44689 docs/manual/advanced-dparams.xml: describe controller
Original commit message from CVS:
* docs/manual/advanced-dparams.xml:
describe controller
* docs/manual/advanced-position.xml:
* docs/manual/basics-init.xml:
* docs/manual/manual.xml:
* docs/manual/titlepage.xml:
* docs/pwg/pwg.xml:
* docs/pwg/titlepage.xml:
cleanup xml (more to come)
* libs/gst/controller/gstcontroller.c:
fix typo
2006-01-30 21:11:38 +00:00
Wim Taymans
0cab8b4fbc libs/gst/base/gstbasesink.c: Basesink cleanups, remove some old code.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_init),
(gst_base_sink_preroll_queue_empty), (gst_base_sink_commit_state),
(gst_base_sink_handle_object), (gst_base_sink_event),
(gst_base_sink_is_prerolled), (gst_base_sink_wait),
(gst_base_sink_do_sync), (gst_base_sink_handle_event),
(gst_base_sink_handle_buffer), (gst_base_sink_set_flushing),
(gst_base_sink_deactivate), (gst_base_sink_activate),
(gst_base_sink_activate_pull), (gst_base_sink_get_position),
(gst_base_sink_query), (gst_base_sink_change_state):
Basesink cleanups, remove some old code.
Handle the case where a subclass can preroll in the render
method (mostly audiosinks).
Handle more events.
Remove some locks around variables that are now protected
with the PREROLL_LOCK (clock_id, flushing, ..).
Optimize position query some more, do correct locking.
Remove old code to push queue in state change, this is not
needed anymore since preroll blocks on all prerollable items
now.
Almost implemented as described in design doc.
2006-01-30 16:07:48 +00:00
Stefan Kost
a53172d79d doc fixes, to link to function, just write gst_cool_function(), don't prefix with '#'
Original commit message from CVS:
* gst/gstcaps.c:
* gst/gstelement.c: (gst_element_send_event):
* gst/gstevent.c:
* gst/gstinfo.c:
* gst/gstiterator.c:
* gst/gstiterator.h:
* gst/gstpad.c: (gst_pad_send_event):
* gst/gststructure.c:
* gst/gsturi.c:
* gst/gstutils.c:
* gst/gstvalue.c:
* libs/gst/base/gstadapter.c:
doc fixes, to link to function, just write gst_cool_function(), don't
prefix with '#'
2006-01-27 22:34:51 +00:00
Wim Taymans
74464f0730 libs/gst/base/gstbasesrc.c: Add some debugging.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_get_range):
Add some debugging.
2006-01-26 12:59:48 +00:00
Julien Moutte
8791aa4fbc libs/gst/base/gstbasesink.c: We only query position using the clock in the playing state.
Original commit message from CVS:
2006-01-25  Julien MOUTTE  <julien@moutte.net>

* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
We only query position using the clock in the playing state.
Query peer in the other cases.
* win32/common/config.h: Updates.
2006-01-25 18:07:02 +00:00
Wim Taymans
213c508b5c gst/gstsystemclock.c: A clock entry that is scheduled for the exact time of the clock is still in time.
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.
2006-01-24 16:23:17 +00:00
Jan Schmidt
1dad4aea3a libs/gst/base/gstcollectpads.c: Don't loop infinitely if there are no buffers to present. Partially fixes #327197, bu...
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_is_collected):
Don't loop infinitely if there are no buffers to present. Partially
fixes #327197, but collectpads is just broken for reusing elements
to do multiple encodes atm.
2006-01-20 09:26:00 +00:00
Wim Taymans
c33121174b gst/: Added some more debug info.
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.
2006-01-18 18:01:54 +00:00
Wim Taymans
a42ee31bd8 libs/gst/base/gstbasesink.c: Some cleanups.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_do_sync):
Some cleanups.
When the sink finishes blocking on the preroll buffer, it can
immediatly render it instead of rendering when the next buffer
arrives.
2006-01-18 17:18:39 +00:00
Wim Taymans
94e1664fca libs/gst/base/gstbasesink.c: Small cleanups.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_set_property),
(gst_base_sink_get_property), (gst_base_sink_do_sync),
(gst_base_sink_chain):
Small cleanups.
GST_ELEMENT_CLOCK and sync are protected with LOCK.
Don't store _last_stop if the buffer is dropped.
2006-01-18 16:40:16 +00:00
Jan Schmidt
0c0d5462a2 Replace gst_buffer_(make|is)_metadata_writable patch now that the release is out.
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.
2006-01-17 12:14:20 +00:00
Jan Schmidt
6876d64a29 Back out patch until after the release.
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.
2006-01-16 15:42:08 +00:00
Jan Schmidt
c7506c8b0a gst/gstbuffer.*: Add gst_buffer_(is|make)_metadata_writable as analogues of gst_buffer_(is|make)_writable.
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)
2006-01-16 14:32:33 +00:00
Stefan Kost
d7fe3b3c7b docs/: add new API entries to the docs
Original commit message from CVS:
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
* docs/libs/gstreamer-libs-sections.txt:
add new API entries to the docs
* libs/gst/controller/Makefile.am:
* libs/gst/controller/gstcontroller.c:
* libs/gst/controller/gstcontroller.h:
* libs/gst/controller/gstcontrollerprivate.h:
* libs/gst/controller/gsthelper.c:
* libs/gst/controller/gstinterpolation.c:
move private structs to private header
* po/README:
gstreamer-0.7 -> gstreamer-0.10
* tests/check/libs/struct_i386.h:
remove private structs
2006-01-13 14:21:48 +00:00
Sébastien Moutte
3c5c1d29ea libs/gst/base/gstbasesink.c: *cur = (now - base) * basesink->segment.abs_rate + time; replaced by
Original commit message from CVS:
* libs/gst/base/gstbasesink.c:
*cur = (now - base) * basesink->segment.abs_rate + time; replaced by
*cur = gst_guint64_to_gdouble(now - base) * basesink->segment.abs_rate + time; for vs6
* win32/common/config.h:
added some defines GST_MAJORMINOR and HOST_CPU
* win32/common/libgstbase.def:
* win32/common/libgstreamer.def:
added some exported functions
2006-01-12 22:04:58 +00:00
Stefan Kost
ff3b09e189 libs/gst/controller/: make G_TYPE_STRING controlable
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c:
(gst_controlled_property_set_interpolation_mode),
(gst_controlled_property_new):
* libs/gst/controller/gstcontroller.h:
* libs/gst/controller/gstinterpolation.c:
(interpolate_none_get_string_value_array):
make G_TYPE_STRING controlable
2006-01-12 21:55:42 +00:00
Jan Schmidt
4159740e17 libs/gst/base/gstcollectpads.c: Need to awaken ALL the pads when we pop a buffer, otherwise collectpads only works wh...
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.
2006-01-11 21:32:21 +00:00
Tim-Philipp Müller
8e7f380fd7 libs/gst/base/gstbasesrc.*: Name (private) union; makes Sun's Forte compiler happy (#324900).
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller  <tim at centricular dot net>
* libs/gst/base/gstbasesrc.c: (gst_base_src_init),
(gst_base_src_perform_seek), (gst_base_src_send_event),
(gst_base_src_set_property), (gst_base_src_get_property),
(gst_base_src_loop), (gst_base_src_start),
(gst_base_src_activate_push):
* libs/gst/base/gstbasesrc.h:
Name (private) union; makes Sun's Forte compiler happy (#324900).
2006-01-10 09:23:11 +00:00
Thomas Vander Stichele
ca814c15a6 releasing 0.10.1
Original commit message from CVS:
releasing 0.10.1
2005-12-23 18:04:49 +00:00
Wim Taymans
588e11ad39 libs/gst/: Documentation updates.
Original commit message from CVS:
* libs/gst/base/gstadapter.c:
* libs/gst/base/gstadapter.h:
* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_get_position):
* libs/gst/base/gstbasesink.h:
* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
(gst_base_src_default_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_update_length),
(gst_base_src_get_range), (gst_base_src_loop),
(gst_base_src_start):
* libs/gst/base/gstbasesrc.h:
* libs/gst/base/gstbasetransform.h:
* libs/gst/base/gstcollectpads.h:
* libs/gst/base/gstpushsrc.c:
* libs/gst/base/gstpushsrc.h:
* libs/gst/dataprotocol/dataprotocol.c:
* libs/gst/dataprotocol/dataprotocol.h:
* libs/gst/net/gstnetclientclock.h:
* libs/gst/net/gstnettimeprovider.h:
Documentation updates.
2005-12-18 16:04:41 +00:00
Julien Moutte
ed8fcd46b2 libs/gst/base/gstcollectpads.c: Refactoring of collectpads. This version removes a lot of races without touching API/...
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 !
2005-12-14 17:08:36 +00:00
Michael Smith
83a815e648 gst/gsttypefindfactory.c: Don't unref factories after calling them.
Original commit message from CVS:
* gst/gsttypefindfactory.c: (gst_type_find_factory_call_function):
Don't unref factories after calling them.
* libs/gst/base/gsttypefindhelper.c: (gst_type_find_helper):
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_chain):
Free lists of factories after using them. Fixing typefinding memory
leaks.
2005-12-12 19:09:49 +00:00
Andy Wingo
6c96798fd2 libs/gst/net/gstnettimeprovider.c (gst_net_time_provider_class_init, gst_net_time_provider_init) (gst_net_time_provid...
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.
2005-12-12 15:02:02 +00:00
Wim Taymans
98522fc638 libs/gst/base/gstpushsrc.c: Fix typo.
Original commit message from CVS:
* libs/gst/base/gstpushsrc.c:
Fix typo.
2005-12-12 14:43:57 +00:00
Wim Taymans
aabc185dc6 docs/libs/gstreamer-libs-sections.txt: Added new symbol to docs.
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()
2005-12-12 14:41:05 +00:00
Wim Taymans
6a80d3c4ea libs/gst/base/gstbasesink.c: Take current playback rate into account when reporting the position.
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.
2005-12-12 10:16:11 +00:00
Wim Taymans
d16ce65df7 gst/gstbuffer.c: Small docs update.
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.
2005-12-07 15:16:43 +00:00
David Schleef
e8b8381452 libs/gst/base/gstbasetransform.c: speling fix.
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c: speling fix.
2005-12-06 23:32:01 +00:00
Thomas Vander Stichele
288f61d21f expand tabs
Original commit message from CVS:
expand tabs
2005-12-06 19:29:15 +00:00
Wim Taymans
4f28ca8331 libs/gst/base/gstbasetransform.c (gst_base_transform_prepare_output_buf)
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.
2005-12-05 13:01:35 +00:00
Tim-Philipp Müller
93f79f0c96 libs/gst/base/gstcollectpads.c: Change debug category to 'collectpads' from 'collect_pads' (fixes #323250).
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).
2005-12-05 09:45:29 +00:00
Sebastien Moutte
7e0089586b libs/gst/controller/gstinterpolation.c: use convert function for uint64/double
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
2005-12-04 18:54:19 +00:00
Wim Taymans
db2b4d916c gst/gstutils.c: Small cleanup.
Original commit message from CVS:
* gst/gstutils.c: (gst_util_uint64_scale_int64),
(gst_util_uint64_scale_int):
Small cleanup.

* libs/gst/base/gstbasesink.c: (gst_base_sink_handle_object):
Add debug log line.

* libs/gst/base/gstbasetransform.c: (gst_base_transform_event):
Add FIXME.
2005-12-02 11:36:50 +00:00
Thomas Vander Stichele
602d69e85c add libgstcontroller to the build
Original commit message from CVS:
add libgstcontroller to the build
2005-12-01 10:07:26 +00:00
Thomas Vander Stichele
00b670d9a2 libs/gst/controller/gstinterpolation.c: whitespace prices have crashed, we should feel free to use some now use gst_g...
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
2005-12-01 09:54:56 +00:00
Thomas Vander Stichele
e0d86774fd wrap config.h include
Original commit message from CVS:
wrap config.h include
2005-12-01 09:23:20 +00:00
Thomas Vander Stichele
93a4a0b763 remove old win32 stuff that isn't maintained and should be reorganized
Original commit message from CVS:
remove old win32 stuff that isn't maintained and should be
reorganized
2005-11-30 16:17:23 +00:00
Thomas Vander Stichele
86409304ea remove getbits
Original commit message from CVS:
remove getbits
2005-11-30 16:12:48 +00:00
Thomas Vander Stichele
a640dbc968 removing ext, was not used anymore
Original commit message from CVS:
removing ext, was not used anymore
2005-11-30 08:29:14 +00:00
Andy Wingo
a08a8d8fea libs/gst/base/: en-LARGE the padding.
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).
2005-11-29 19:37:49 +00:00
Thomas Vander Stichele
a0c4c4812c CVS surgery + support to move base, check, and net out of gst and into libs/gst
Original commit message from CVS:
CVS surgery + support to move base, check, and net out of gst
and into libs/gst
2005-11-29 19:12:30 +00:00
Andy Wingo
41f439b0a1 Rename gstnet-tempname to gstnet. Fixes #322257.
Original commit message from CVS:
2005-11-29  Andy Wingo  <wingo@pobox.com>

* check/Makefile.am:
* pkgconfig/gstreamer-net-uninstalled.pc.in:
* pkgconfig/gstreamer-net.pc.in:
* gst/net/Makefile.am: Rename gstnet-tempname to gstnet. Fixes
#322257.
2005-11-29 17:47:06 +00:00
Edward Hervey
c4d1ffa5c7 gst/base/gstbasesink.c: Properly handle non GST_FORMAT_TIME segment
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.
2005-11-29 17:13:44 +00:00
Jan Schmidt
aff648ab66 gst/base/gstbasetransform.c: Treat a pad alloc with new caps the same as if we were not negotiated, in order to allow...
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.
2005-11-29 15:12:22 +00:00
Edward Hervey
33a15d5e67 gst/base/gstbasetransform.c: The event virtual method is now properly implemented, with a default handler
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
2005-11-29 14:47:07 +00:00
Stefan Kost
5f11755575 docs/random/ensonic/dparams.txt: some TODOs for the next dev cycle
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
2005-11-28 13:25:14 +00:00
Stefan Kost
7b347681d5 gst/gstelement.c: don't loop forever
Original commit message from CVS:
* gst/gstelement.c: (gst_element_dispose):
don't loop forever
* gst/gstiterator.c:
* gst/gststructure.c:
doc fixes
* libs/gst/controller/gstcontroller.c:
(gst_controlled_property_set_interpolation_mode):
* libs/gst/controller/gstcontroller.h:
* libs/gst/controller/gstinterpolation.c:
(interpolate_none_get_enum_value_array):
support controlling enums
2005-11-27 22:43:08 +00:00
Thomas Vander Stichele
f21e4cc7c3 fix up Makefile.am and remove GST_ENABLE_NEW
Original commit message from CVS:
fix up Makefile.am and remove GST_ENABLE_NEW
2005-11-27 16:46:48 +00:00
Thomas Vander Stichele
f496f75765 update LDFLAGS use some more
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
2005-11-27 15:15:35 +00:00
Wim Taymans
d0c276b717 gst/base/gstbasesrc.c: Fix wrong percentage query.
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.
2005-11-24 19:06:58 +00:00
Thomas Vander Stichele
888bf79853 check/gst/gstminiobject.c: don't use check calls from threads; check probably isn't threadsafe and using a lock to ma...
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
2005-11-24 18:40:58 +00:00
Michael Smith
836eb1dd02 gst/base/gstbasesink.c: Unlock the PREROLL_LOCK in a failure case.
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.
2005-11-24 12:44:25 +00:00
Wim Taymans
a9f7f7b7b6 Doc fixes.
Original commit message from CVS:
Doc fixes.
2005-11-24 09:44:07 +00:00
Wim Taymans
ca6f8f5387 Doc updates.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/glib-compat.c:
* gst/gsttagsetter.c:
* gst/gstvalue.c:
* gst/net/gstnetclientclock.c:
* gst/net/gstnettimepacket.h:
Doc updates.
2005-11-23 16:10:38 +00:00
Michael Smith
f1819a7a28 docs/gst/gstreamer-sections.txt: Update for new API and API changes.
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.
2005-11-23 14:52:31 +00:00
Wim Taymans
9e0575c379 docs/design/part-TODO.txt: Update TODO.
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.
2005-11-23 13:14:46 +00:00
Christian Schaller
269d554be4 add missing cvsignores so CVS shuts up
Original commit message from CVS:
add missing cvsignores so CVS shuts up
2005-11-23 12:39:36 +00:00
Andy Wingo
da72aaa235 check/net/gstnetclientclock.c (test_functioning): Adjust to rate_num/rate_denom change.
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.
2005-11-23 12:36:00 +00:00
Stefan Kost
df00e2ede5 docs/gst/gstreamer-sections.txt: make two symbols from gstinfo private for the docs
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
2005-11-23 11:05:37 +00:00
Wim Taymans
cf925ebb6f gst/base/gstbasesink.*: No need to store the clock, the parent element class already has it.
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.
2005-11-22 18:28:44 +00:00
Andy Wingo
19858fd9f0 gst/gstevent.h (gst_event_new_new_segment) (gst_event_parse_new_segment, gst_event_new_buffer_size)
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.
2005-11-22 11:48:58 +00:00
Wim Taymans
e9606ada93 gst/base/gstbasesink.c: Make sure the GstFlowReturn is returned.
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.
2005-11-22 11:25:01 +00:00
Stefan Kost
f6afcd058c gst/gst.h: include "gstchildproxy.h"
Original commit message from CVS:
* gst/gst.h:
include "gstchildproxy.h"
* gst/gstchildproxy.h:
* libs/gst/controller/gstcontroller.h:
use G_GNUC_NULL_TERMINATED
2005-11-22 09:35:25 +00:00
Andy Wingo
153931fa86 check/gst/gstevent.c (create_custom_events): Check that
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.
2005-11-21 17:21:15 +00:00
Wim Taymans
a35882df1f More segment updates, replace code in plugins with segment helper functions.
Original commit message from CVS:
* check/gst/gstsegment.c: (GST_START_TEST):
* docs/design/part-TODO.txt:
* 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_get_position),
(gst_base_sink_query), (gst_base_sink_change_state):
* gst/base/gstbasesink.h:
* gst/base/gstbasesrc.c: (gst_base_src_init), (gst_base_src_query),
(gst_base_src_default_newsegment),
(gst_base_src_configure_segment), (gst_base_src_do_seek),
(gst_base_src_get_range), (gst_base_src_loop),
(gst_base_src_change_state):
* gst/base/gstbasesrc.h:
* gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buf),
(gst_base_transform_event), (gst_base_transform_change_state):
* gst/base/gstbasetransform.h:
* gst/base/gstcollectpads.c: (gst_collect_pads_add_pad),
(gst_collect_pads_event):
* gst/base/gstcollectpads.h:
* gst/elements/gstfakesrc.c: (gst_fake_src_init),
(gst_fake_src_create):
* gst/elements/gstfakesrc.h:
* gst/elements/gstidentity.c: (gst_identity_transform_ip):
* gst/gstsegment.c: (gst_segment_init), (gst_segment_set_duration),
(gst_segment_set_last_stop), (gst_segment_set_seek),
(gst_segment_set_newsegment), (gst_segment_to_stream_time),
(gst_segment_to_running_time), (gst_segment_clip):
* gst/gstsegment.h:
More segment updates, replace code in plugins with segment
helper functions.
2005-11-21 17:09:45 +00:00
Andy Wingo
44c548b205 *.*: Ran scripts/update-macros. Oh yes. gst/gstobject.h (GST_OBJECT_GET_LOCK, GST_OBJECT_LOCK)
Original commit message from CVS:
2005-11-21  Andy Wingo  <wingo@pobox.com>

* *.h:
* *.c: Ran scripts/update-macros. Oh yes.

* gst/gstobject.h (GST_OBJECT_GET_LOCK, GST_OBJECT_LOCK)
(GST_OBJECT_TRYLOCK, GST_OBJECT_UNLOCK): Renamed from
GST_GET_LOCK, etc.

* scripts/update-macros: New script. Run it on your files to
change GST_LOCK to GST_OBJECT_LOCK, and the same for UNLOCK as
well.
2005-11-21 16:34:26 +00:00
Andy Wingo
a8560f7b3b gst/base/gstbasesrc.c (GST_LIVE_BROADCAST, GST_LIVE_SIGNAL) (GST_LIVE_TIMED_WAIT, GST_LIVE_WAIT, GST_LIVE_GET_COND) (...
Original commit message from CVS:
2005-11-21  Andy Wingo  <wingo@pobox.com>

* gst/base/gstbasesrc.c (GST_LIVE_BROADCAST, GST_LIVE_SIGNAL)
(GST_LIVE_TIMED_WAIT, GST_LIVE_WAIT, GST_LIVE_GET_COND)
(GST_LIVE_UNLOCK, GST_LIVE_TRYLOCK, GST_LIVE_LOCK)
(GST_LIVE_GET_LOCK): Moved here from gstbasesrc.h. They are
private to the basesrc implementation.
2005-11-21 14:41:26 +00:00
Tim-Philipp Müller
d5ce5ad5e8 docs/gst/gstreamer.types: gst_collectpads_get_type => gst_collect_pads_get_type.
Original commit message from CVS:
* docs/gst/gstreamer.types:
gst_collectpads_get_type => gst_collect_pads_get_type.
* gst/base/gstbasetransform.c:
Remove unused SIGNAL_HANDOFF enum.
2005-11-21 11:26:07 +00:00
Tim-Philipp Müller
60c50e8f11 Rename gst_collecpads_foo() => gst_collect_pads_foo(). Document unimplemented functions as unimplemented (#320766).
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* win32/common/libgstbase.def:
* win32/libgstbase.def:
* gst/base/gstcollectpads.c: (gst_collect_pads_base_init),
(gst_collect_pads_class_init), (gst_collect_pads_init),
(gst_collect_pads_finalize), (gst_collect_pads_new),
(gst_collect_pads_set_function), (gst_collect_pads_add_pad),
(gst_collect_pads_remove_pad), (gst_collect_pads_is_active),
(gst_collect_pads_collect), (gst_collect_pads_collect_range),
(gst_collect_pads_start), (gst_collect_pads_stop),
(gst_collect_pads_peek), (gst_collect_pads_pop),
(gst_collect_pads_available), (gst_collect_pads_read),
(gst_collect_pads_flush), (gst_collect_pads_event),
(gst_collect_pads_chain):
* gst/base/gstcollectpads.h:
Rename gst_collecpads_foo() => gst_collect_pads_foo(). Document
unimplemented functions as unimplemented (#320766).
2005-11-21 11:00:03 +00:00
Jan Schmidt
c05ba2d666 check/gst/gstvalue.c: Add a deserialisation test for fractions
Original commit message from CVS:
* check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
Add a deserialisation test for fractions
* examples/metadata/read-metadata.c: (message_loop),
(make_pipeline), (main):
Fix up metadata reading sample.
* gst/base/gstbasesink.c: (gst_base_sink_do_sync):
Debug format fix
* gst/base/gstbasesrc.c: (gst_base_src_default_negotiate):
Don't try and fixate empty caps
* gst/gst_private.h:
Wrap in G_BEGIN_DECLS/G_END_DECLS
* gst/gstvalue.c: (gst_value_collect_fraction),
(gst_value_set_fraction), (gst_value_get_fraction_denominator),
(gst_value_transform_string_fraction),
(gst_value_compare_fraction):
Add some extra guards to ensure that we don't end up
with an invalid denominator of 0 in a gstfraction and
that fractions always get reduced.
2005-11-20 17:12:49 +00:00