Commit graph

858 commits

Author SHA1 Message Date
Jan Schmidt
d3c98affb0 libs/gst/base/gstadapter.c: Make take_buffer a bit quicker by removing redundant checks caused by calling gst_adapter...
Original commit message from CVS:
* libs/gst/base/gstadapter.c: (gst_adapter_take_buffer):
Make take_buffer a bit quicker by removing redundant checks
caused by calling gst_adapter_take.
2007-03-29 15:53:03 +00:00
Wim Taymans
462f32dd4a libs/gst/base/gstbasesrc.c: Only push the segment events in the PLAYING state for live sources.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_get_range),
(gst_base_src_loop):
Only push the segment events in the PLAYING state for live sources.
2007-03-25 15:33:35 +00:00
Wim Taymans
631c5a95de libs/gst/base/gstbasesrc.c: Handle errors from the clock sync better, only UNSCHEDULED indicates a
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_get_range):
Handle errors from the clock sync better, only UNSCHEDULED indicates a
WRONG_STATE and can silently pause the task. All other cases should
error out.
2007-03-22 11:19:32 +00:00
Jan Schmidt
8e36ce0940 libs/gst/base/gstbasesrc.c: Clarify FIXME comment in the face of having added unlock_stop()
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c:
Clarify FIXME comment in the face of having added unlock_stop()
2007-03-21 17:50:46 +00:00
Jan Schmidt
c248d1dba0 libs/gst/base/: Add ::unlock_stop to basesrc and basesink. This allows an opportunity for sub-classes to correctly cl...
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_set_flushing),
(gst_base_sink_change_state):
* libs/gst/base/gstbasesink.h:
* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek),
(gst_base_src_default_event), (gst_base_src_unlock_stop),
(gst_base_src_deactivate):
* libs/gst/base/gstbasesrc.h:
Add ::unlock_stop to basesrc and basesink. This allows an opportunity
for sub-classes to correctly clear any state they set trying to
unlock, such as clearing out unlock commands from a command fd.
* plugins/elements/gstfdsink.c: (gst_fd_sink_class_init),
(gst_fd_sink_render), (gst_fd_sink_unlock),
(gst_fd_sink_unlock_stop):
* plugins/elements/gstfdsrc.c: (gst_fd_src_class_init),
(gst_fd_src_init), (gst_fd_src_unlock), (gst_fd_src_unlock_stop),
(gst_fd_src_create), (gst_fd_src_get_size), (gst_fd_src_do_seek):
Implement unlock_stop in fdsrc and fdsink.
Implement seeking in fdsrc when a seekable fd is passed, as in
gst-launch-0.10 fdsrc ! ... ! xvimagesink < /path/to/file
2007-03-19 15:01:40 +00:00
Wim Taymans
d14c4c4a67 docs/gst/gstreamer-sections.txt: Add new element field and method.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
Add new element field and method.
* gst/gstbin.c: (gst_bin_class_init), (gst_bin_init),
(bin_remove_messages), (gst_bin_add_func), (gst_bin_remove_func),
(gst_bin_recalc_state), (gst_bin_get_state_func),
(gst_bin_element_set_state), (gst_bin_change_state_func),
(gst_bin_continue_func), (bin_bus_handler),
(bin_push_state_continue), (bin_handle_async_start),
(bin_handle_async_done), (gst_bin_handle_message_func):
Make async state changes a bit smarter by using new ASYNC_START and
ASYNC_DONE messages. This reduces the number of times we run the state
recalculation thread.
Don't change state of element with a pending ASYNC_START message.
Deprecate STATE_DIRTY messages.
* gst/gstelement.c: (gst_element_init), (gst_element_send_event),
(gst_element_get_state_func), (gst_element_continue_state),
(gst_element_lost_state), (gst_element_set_state_func),
(gst_element_change_state):
* gst/gstelement.h:
Keep the state that was last set by the app in a new element field.
Don't allow state changes when handling an element event.
Post ASYNC_START and ASYNC_DONE messages.
Change lost_state so that we go to PAUSED and wait for the parent to set
us to PLAYING again (so latency calculation can be performed)
Export gst_element_change_state() method so that subclasses can use it.
API: gst_element_change_state()
API: GST_STATE_TARGET
* gst/gstpipeline.c: (gst_pipeline_class_init),
(reset_stream_time), (gst_pipeline_change_state),
(gst_pipeline_handle_message), (gst_pipeline_set_new_stream_time):
Using the new ASYNC_START message we can reset the base_time when
needed. This can then be used to implement base_time redistribution in
flushing seeks so that we can remove the explicit seek handling.
Perform latency query and configuration when going to PLAYING.
* libs/gst/base/gstbasesink.c: (gst_base_sink_commit_state),
(gst_base_sink_query), (gst_base_sink_change_state):
Post new ASYNC_START/ASYNC_DONE messages.
* tests/check/generic/sinks.c: (GST_START_TEST):
Fix test because the bin will not set the async element to PLAYING right
away.
* tests/check/gst/gstbin.c: (pop_async_done), (GST_START_TEST):
Make the message check a little stronger.
Handle ASYNC messages.
* tests/check/pipelines/cleanup.c: (GST_START_TEST):
* tests/check/pipelines/simple-launch-lines.c: (GST_START_TEST):
Expect ASYNC_DONE messages.
2007-03-19 10:47:56 +00:00
Thomas Vander Stichele
852774ec6c fix misleading log statement
Original commit message from CVS:
fix misleading log statement
2007-03-14 11:21:48 +00:00
Wim Taymans
db43de1985 Add metadata copy functions. Fixes #393099.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstbuffer.c: (gst_buffer_copy_metadata), (_gst_buffer_copy):
* gst/gstbuffer.h:
Add metadata copy functions. Fixes #393099.
* gst/gstutils.c: (gst_buffer_stamp):
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buffer):
Use new metadata copy functions.
2007-03-09 16:30:38 +00:00
Wim Taymans
ecc37d9389 libs/gst/base/gstbasetransform.*: Add support for dropping buffers with custom GstFlowReturn.
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_sink_eventfunc),
(gst_base_transform_handle_buffer), (gst_base_transform_chain),
(gst_base_transform_activate):
* libs/gst/base/gstbasetransform.h:
Add support for dropping buffers with custom GstFlowReturn.
Set DISCONT flags on outgoing buffers based on QoS, incomming DISCONT
buffers or dropped buffers.
* docs/libs/gstreamer-libs-sections.txt:
docs for new custom return code.
* plugins/elements/gstidentity.c: (gst_identity_transform_ip):
Use drop support in base class to implement drop-probability.
2007-03-08 11:40:18 +00:00
Stefan Kost
8171d7ff5d libs/gst/base/gstbasesrc.c: Log flow-names and not numbers.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_loop):
Log flow-names and not numbers.
2007-03-01 14:49:41 +00:00
Wim Taymans
ff5129a795 libs/gst/base/gstbasesink.c: Don't unref query twice.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_query_latency):
Don't unref query twice.
2007-02-28 18:51:47 +00:00
Wim Taymans
b864edefbd libs/gst/base/gstbasesink.c: Improve latency query code.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_query_latency),
(gst_base_sink_queue_object_unlocked), (gst_base_sink_send_event),
(gst_base_sink_change_state):
Improve latency query code.
Don't leak latency events.
* tests/check/gst/gstbin.c: (GST_START_TEST):
Improve debugging.
2007-02-28 16:46:07 +00:00
Wim Taymans
7615bf85c6 libs/gst/base/gstbasetransform.c: Implement a checkgetrange function instead of relying on the default core behaviour...
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c: (gst_base_transform_init),
(gst_base_transform_check_get_range):
Implement a checkgetrange function instead of relying on the default
core behaviour that assumes we can operate in pull mode if we have a
getrange function. First step at fixing #385084.
2007-02-19 18:08:59 +00:00
Stefan Kost
efb8033bac More docs coverage and some ChangeLog surgery (add missing names)
Original commit message from CVS:
* gst/gstchildproxy.h:
* libs/gst/base/gstbasesink.h:
* libs/gst/base/gstbasesrc.h:
* libs/gst/base/gstbasetransform.h:
More docs coverage and some ChangeLog surgery (add missing names)
2007-02-15 12:05:09 +00:00
Wim Taymans
2d4c842ab7 libs/gst/base/gstbasesrc.c: Answer LATENCY query.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_default_query):
Answer LATENCY query.
2007-02-15 09:07:25 +00:00
Wim Taymans
a25cedb415 docs/design/draft-latency.txt: Small update.
Original commit message from CVS:
* docs/design/draft-latency.txt:
Small update.
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_get_latency), (gst_base_sink_query_latency),
(gst_base_sink_wait_clock), (gst_base_sink_send_qos),
(gst_base_sink_perform_qos), (gst_base_sink_queue_object_unlocked),
(gst_base_sink_chain_unlocked), (gst_base_sink_send_event),
(gst_base_sink_get_position), (gst_base_sink_query),
(gst_base_sink_change_state):
* libs/gst/base/gstbasesink.h:
API: gst_base_sink_query_latency() to let subclasses query the upstream
latency.
API: gst_base_sink_get_latency() to let subclasses query the configured
latency in the sink.
Implement query and set latency.
Update some docs.
As spotted by Will Newton <will dot newton at gmail dot com>: Make sure we
don't continue preroll when we are flushing. Fixes #405284.
* tests/check/pipelines/stress.c: (change_state_timeout),
(quit_timeout), (GST_START_TEST), (stress_suite):
Test for #405284.
2007-02-12 11:32:22 +00:00
Stefan Kost
85c81ea952 docs/libs/Makefile.am: Fix path to core docs.
Original commit message from CVS:
* docs/libs/Makefile.am:
Fix path to core docs.
* gst/gstbin.c: (gst_bin_get_by_interface),
(gst_bin_iterate_all_by_interface):
Refix docs by also renaming 'interface' to 'iface' in implementation.
* docs/gst/gstreamer-sections.txt:
* gst/gstcaps.c:
* gst/gstchildproxy.c: (gst_child_proxy_base_init):
* gst/gstchildproxy.h:
* gst/gstelementfactory.c:
* gst/gstpadtemplate.h:
* libs/gst/controller/gstcontroller.c:
(gst_controlled_property_new):
Document more.
2007-02-11 19:59:12 +00:00
Sebastian Dröge
c50cb6a421 libs/gst/base/gstcollectpads.*: Don't put the previously added destroy notify in the GstCollectData struct as all it'...
Original commit message from CVS:
reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_finalize),
(unref_data), (gst_collect_pads_add_pad_full):
* libs/gst/base/gstcollectpads.h:
Don't put the previously added destroy notify in the GstCollectData
struct as all it's padding is already used and we don't want to break
ABI. Instead put in the pad's GObject data for now. This should be
cleaned up for 0.11 (#402393).
2007-02-01 19:00:48 +00:00
Sebastian Dröge
a2d3362309 API: Add function to specify a destroy notification for custom
Original commit message from CVS:
reviewed by: Wim Taymans <wim@fluendo.com>
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_finalize),
(unref_data), (gst_collect_pads_add_pad),
(gst_collect_pads_add_pad_full):
* libs/gst/base/gstcollectpads.h:
API: Add function to specify a destroy notification for custom
GstCollectData when adding new pads in GstCollectPads (#402393).
2007-02-01 17:52:11 +00:00
David Schleef
8be2913771 API: gst_adapter_copy() that can reduce the amount of memcpy when getting data from the adapter. Fixes #388201.
Original commit message from CVS:
Patch by: David Schleef <ds at schleef dot org>
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstadapter.c: (gst_adapter_copy):
* libs/gst/base/gstadapter.h:
API: gst_adapter_copy() that can reduce the amount of memcpy when
getting data from the adapter. Fixes #388201.
2007-01-25 10:50:03 +00:00
Tim-Philipp Müller
e94feebf11 libs/gst/check/gstcheck.c: Actually write ABI structs to the file specified in the GST_ABI environment variable, as t...
Original commit message from CVS:
* libs/gst/check/gstcheck.c: (gst_check_abi_list):
Actually write ABI structs to the file specified in the GST_ABI
environment variable, as the message we print claims we would.
2007-01-16 09:57:50 +00:00
Andy Wingo
3482d79879 libs/gst/base/gstbasetransform.c (gst_base_transform_activate): Factor start/stop into this private function instead ...
Original commit message from CVS:
2007-01-12  Andy Wingo  <wingo@pobox.com>

* libs/gst/base/gstbasetransform.c (gst_base_transform_activate):
Factor start/stop into this private function instead of partially
in activate functions and partially in the change_state function.
Fixes setup before the element has changed from READY->PAUSED, as
is the case in pull-mode pipelines.
(gst_base_transform_sink_activate_push)
(gst_base_transform_src_activate_pull): Refactor to use
gst_base_transform_activate().
(gst_base_transform_change_state): Removed, not needed any more.

* libs/gst/base/gstbasesink.c (gst_base_sink_negotiate_pull):
Truncate before fixating.
2007-01-12 21:13:32 +00:00
Andy Wingo
5cd94e7afc libs/gst/base/gstbasesink.c (gst_base_sink_negotiate_pull): Don't set_caps() if the result of fixating is ANY, as it'...
Original commit message from CVS:
2007-01-12  Andy Wingo  <wingo@pobox.com>

* libs/gst/base/gstbasesink.c (gst_base_sink_negotiate_pull):
Don't set_caps() if the result of fixating is ANY, as it's not
supported, and not necessary in the case of a link with no
template caps on either side. Fixes tests/check/libs/basesrc in
some pull-mode tests.
2007-01-12 18:06:29 +00:00
Andy Wingo
a173768706 libs/gst/base/gstbasetransform.c (_GstBaseTransformPrivate): (gst_base_transform_init, gst_base_transform_sink_activa...
Original commit message from CVS:
2007-01-12  Andy Wingo  <wingo@pobox.com>

* libs/gst/base/gstbasetransform.c (_GstBaseTransformPrivate):
(gst_base_transform_init, gst_base_transform_sink_activate_push)
(gst_base_transform_src_activate_pull):
Track the activation mode.
(gst_base_transform_setcaps): In pull mode, when activating the
src pad, after activating the sink pad, activate the sink pad's
peer, as discussed in part-negotiation.txt.

* libs/gst/base/gstbasesrc.h:
* libs/gst/base/gstbasesrc.c (gst_base_src_fixate): Add fixate
vmethod, as in basesink.

* libs/gst/base/gstbasesink.h: Reformat docs, add fixate vmethod.

* libs/gst/base/gstbasesink.c (gst_base_sink_pad_setcaps): In pull
mode, first proxy the setcaps to the peer pad.
(gst_base_sink_pad_fixate): Add a fixate function that calls the
new fixate vmethod.
(gst_base_sink_default_activate_pull): Rename from
gst_base_sink_activate_pull.
(gst_base_sink_negotiate_pull): New function, performs negotiation
in pull mode before calling ::activate_pull().
(gst_base_sink_pad_activate_pull): Actually call the activate_pull
vmethod instead of the default implementation. I have no idea how
this worked before. Negotiate before calling activate_pull.
2007-01-12 15:56:00 +00:00
Tim-Philipp Müller
7ce34c615d libs/gst/check/: Add G_BEGIN_DECLS and G_END_DECLS. Move GST_CHECK_MAIN where it belongs.
Original commit message from CVS:
* libs/gst/check/gstbufferstraw.h:
* libs/gst/check/gstcheck.h:
Add G_BEGIN_DECLS and G_END_DECLS. Move GST_CHECK_MAIN where it
belongs.
2007-01-12 12:48:25 +00:00
Wim Taymans
04019f4083 libs/gst/base/gstcollectpads.c: unref data at the end when we are done with the pad.
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_remove_pad):
unref data at the end when we are done with the pad.
2007-01-09 12:34:45 +00:00
Andy Wingo
4518a5c652 libs/gst/base/gstbasesink.h: New GstBaseSinkClass vmethod, activate_pull(), providing for a way to specialize the pro...
Original commit message from CVS:
2007-01-06  Andy Wingo  <wingo@pobox.com>

* libs/gst/base/gstbasesink.h: New GstBaseSinkClass vmethod,
activate_pull(), providing for a way to specialize the process of
spawning a thread to pull on the sink pad. There is a default
implementation.

* libs/gst/base/gstbasesink.c (gst_base_sink_pad_activate_pull)
(gst_base_sink_pad_activate_push, gst_base_sink_pad_activate)
(gst_base_sink_init): Renamed pad activation functions (inserting
"_pad" in their names). Refactor to use the new activate_pull
vmethod, as appropriate.
(gst_base_sink_class_init, gst_base_sink_activate_pull): Set the
default activate_pull function to start a task pulling from the
sink pad, as before.
2007-01-06 17:18:03 +00:00
Tim-Philipp Müller
c84a427f7b libs/gst/base/gstbasesrc.c: Change some GST_ERROR_OBJECT that aren't really errors to
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_activate_push):
Change some GST_ERROR_OBJECT that aren't really errors to
GST_WARNING_OBJECT in order to reduce terminal spam.
2007-01-05 11:57:49 +00:00
Stefan Kost
c9fbb589a0 libs/gst/check/gstcheck.c: do not automatically (de)activate pads
Original commit message from CVS:
* libs/gst/check/gstcheck.c: (gst_check_setup_src_pad),
(gst_check_teardown_src_pad), (gst_check_setup_sink_pad),
(gst_check_teardown_sink_pad):
do not automatically (de)activate pads
* tests/check/Makefile.am:
* tests/check/elements/queue.c: (queue_overrun), (queue_underrun),
(setup_queue), (cleanup_queue), (GST_START_TEST), (queue_suite):
add new, yet simple tests for queue
* tests/check/elements/fakesrc.c: (cleanup_fakesrc):
* tests/check/elements/fdsrc.c: (cleanup_fdsrc):
* tests/check/elements/filesrc.c: (cleanup_filesrc),
(GST_START_TEST):
* tests/check/elements/identity.c: (cleanup_identity):
consistent pad (de)activation
2006-12-21 08:12:28 +00:00
Sebastian Dröge
08a8908854 libs/gst/base/gstcollectpads.c: Fix two doc typos (#387866).
Original commit message from CVS:
Patch by: Sebastian Dröge  <slomo ubuntu com>
* libs/gst/base/gstcollectpads.c:
Fix two doc typos (#387866).
2006-12-20 19:06:02 +00:00
Sjoerd Simons
9479446ad8 libs/gst/base/gstcollectpads.*: Add refcounting to the collectpads data so we can track when it's safe to free the da...
Original commit message from CVS:
Patch by: Sjoerd Simons <sjoerd at luon dot net>
* libs/gst/base/gstcollectpads.c: (ref_data), (unref_data),
(gst_collect_pads_add_pad), (gst_collect_pads_remove_pad),
(gst_collect_pads_stop), (gst_collect_pads_event),
(gst_collect_pads_chain):
* libs/gst/base/gstcollectpads.h:
Add refcounting to the collectpads data so we can track when it's safe
to free the data. Fixes #383382.
2006-12-16 15:17:54 +00:00
Wim Taymans
6e2306d436 libs/gst/base/gstcollectpads.c: Automatically activate/deactivate pads when they are added to a started/stoped collec...
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_add_pad),
(gst_collect_pads_remove_pad):
Automatically activate/deactivate pads when they are added to a
started/stoped collectpads.
2006-12-15 17:09:59 +00:00
Wim Taymans
8dbb58093f libs/gst/base/gstbasesink.c: Improve debugging of events.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_event),
(gst_base_sink_get_position):
Improve debugging of events.
2006-12-07 10:59:05 +00:00
Edward Hervey
fdb51251dd libs/gst/base/: New GstDataQueue object for threadsafe queueing. Most useful for elements that need some queueing fun...
Original commit message from CVS:
* libs/gst/base/Makefile.am:
* libs/gst/base/gstdataqueue.c: (gst_data_queue_get_type),
(gst_data_queue_base_init), (gst_data_queue_class_init),
(gst_data_queue_init), (gst_data_queue_new),
(gst_data_queue_cleanup), (gst_data_queue_finalize),
(gst_data_queue_locked_flush), (gst_data_queue_locked_is_empty),
(gst_data_queue_locked_is_full), (gst_data_queue_flush),
(gst_data_queue_is_empty), (gst_data_queue_is_full),
(gst_data_queue_set_flushing), (gst_data_queue_push),
(gst_data_queue_pop), (gst_data_queue_drop_head),
(gst_data_queue_set_property), (gst_data_queue_get_property):
* libs/gst/base/gstdataqueue.h:
New GstDataQueue object for threadsafe queueing. Most useful for
elements that need some queueing functionnality.
* docs/libs/gstreamer-libs-docs.sgml:
* docs/libs/gstreamer-libs-sections.txt:
Insert documentation for GstDataQueue
* plugins/elements/Makefile.am:
* plugins/elements/gstelements.c:
* plugins/elements/gstmultiqueue.c: (gst_multi_queue_base_init),
(gst_multi_queue_class_init), (gst_multi_queue_init),
(gst_multi_queue_finalize), (gst_multi_queue_set_property),
(gst_multi_queue_get_property), (gst_multi_queue_request_new_pad),
(gst_multi_queue_release_pad), (gst_single_queue_push_one),
(gst_multi_queue_item_destroy), (gst_multi_queue_item_new),
(gst_multi_queue_loop), (gst_multi_queue_chain),
(gst_multi_queue_sink_activate_push), (gst_multi_queue_sink_event),
(gst_multi_queue_getcaps), (gst_multi_queue_bufferalloc),
(gst_multi_queue_src_activate_push), (gst_multi_queue_acceptcaps),
(gst_multi_queue_src_event), (gst_multi_queue_src_query),
(wake_up_next_non_linked), (compute_next_non_linked),
(single_queue_overrun_cb), (single_queue_underrun_cb),
(single_queue_check_full), (gst_single_queue_new):
* plugins/elements/gstmultiqueue.h:
New multiqueue element, using GstDataQueue. Used for queuing multiple
streams.
Closes #344639 and #347785
2006-11-28 12:07:06 +00:00
Sebastian Droege
2760bf504d libs/gst/check/gstcheck.h: Fix compilation and running against 0.9.4. Fixes #377332.
Original commit message from CVS:
Patch by: Sebastian Droege <slomo at ubuntu dot com>
* libs/gst/check/gstcheck.h:
Fix compilation and running against 0.9.4. Fixes #377332.
2006-11-20 11:11:20 +00:00
Jonathan Matthew
ce2e82da3f libs/gst/base/gstbasesrc.c: Store new length in segment duration so we don't keep on calling the potentially expensiz...
Original commit message from CVS:
Patch by: Jonathan Matthew <jonathan at kaolin dot wh9 dot net>
* libs/gst/base/gstbasesrc.c: (gst_base_src_update_length):
Store new length in segment duration so we don't keep on calling the
potentially expensize get_size() call. Fixes #370865.
2006-11-13 17:54:58 +00:00
Jan Schmidt
2af1fde183 libs/gst/base/gstadapter.c: Fix format string to use all its arguments.
Original commit message from CVS:
* libs/gst/base/gstadapter.c: (gst_adapter_flush),
(gst_adapter_take_buffer):
Fix format string to use all its arguments.
Remove useless >= check on a guint
2006-11-10 10:50:19 +00:00
Jan Schmidt
6f363cd89b Do some optimisation work in GstAdapter to avoid copies in more cases.
Original commit message from CVS:
* Makefile.am:
* configure.ac:
* libs/gst/base/gstadapter.c: (gst_adapter_clear),
(gst_adapter_push), (gst_adapter_peek_into), (gst_adapter_peek),
(gst_adapter_flush), (gst_adapter_take), (gst_adapter_take_buffer):
* libs/gst/base/gstadapter.h:
* tests/check/libs/adapter.c: (create_and_fill_adapter),
(GST_START_TEST), (gst_adapter_suite):
* tests/examples/Makefile.am:
Do some optimisation work in GstAdapter to avoid copies in more cases.
It could still do slightly better by merging buffers when
gst_buffer_is_span_fast is true, but is already faster.
Also, avoid traversing a single-linked list to append each incoming
buffer inside the adapter.
Add simple test app that times the adapter behaviour in different
situations, and extend the unit test to check that bytes enter and
exit the adapter in their original order.
2006-11-09 14:37:38 +00:00
Wim Taymans
efebdfa353 libs/gst/base/gstbasetransform.c: Revert previous commit, 0 sized buffers are allowed. Reopens #363095.
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c: (gst_base_transform_chain):
Revert previous commit, 0 sized buffers are allowed. Reopens #363095.
2006-10-27 10:10:26 +00:00
Edward Hervey
8171460bdf libs/gst/base/gstbasetransform.c: Don't push the buffer if it's empty.
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c: (gst_base_transform_chain):
Don't push the buffer if it's empty.
Closes #363095
2006-10-25 13:41:44 +00:00
Wim Taymans
9bece70bf2 gst/gstevent.h: Add small comment.
Original commit message from CVS:
* gst/gstevent.h:
Add small comment.
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_sink_eventfunc):
Debug segment values *after* updating them as this is more
interesting.
2006-10-24 08:22:19 +00:00
Sergey Scobich
5861382c2f libs/gst/base/gstbasesrc.c: Make sure size is always initialized. Fixes #364388.
Original commit message from CVS:
Patch by: Sergey Scobich <sergey dot scobich at gmail dot com>
* libs/gst/base/gstbasesrc.c: (gst_base_src_wait_playing),
(gst_base_src_start), (gst_base_src_activate_push):
Make sure size is always initialized. Fixes #364388.
2006-10-23 14:51:30 +00:00
Yves Lefebvre
1b417192e6 gst/gstelement.h: Clarify _NO_PREROLL a bit more.
Original commit message from CVS:
* gst/gstelement.h:
Clarify _NO_PREROLL a bit more.
* gst/gstevent.c:
Fix docs.
* gst/gstpad.c: (gst_pad_link_check_hierarchy),
(gst_pad_get_caps_unlocked), (gst_pad_save_thyself),
(handle_pad_block), (gst_pad_push_event), (gst_pad_send_event):
Patch by: Yves Lefebvre <ivanohe at abacom dot com> Fix possible deadlock
due to wrong locking order. Fixes #361769.
Remove some redundant/misplaced checks in pad_block.
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
For negative rates, count backwards from the duration.
2006-10-13 13:27:46 +00:00
Tim-Philipp Müller
db8e173590 libs/gst/controller/gstcontroller.c: Fix refcounting here too, just like we did for _new_valist() a few days ago (#35...
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c: (gst_controller_new_list):
Fix refcounting here too, just like we did for _new_valist() a few
days ago (#357180) (thanks to René Stadler). Also remove all those
'Since: 0.9' from the gtk-doc blobs.
* tests/check/libs/controller.c: (controller_refcount_new_list),
(gst_controller_suite):
Unit test for the above.
2006-10-11 09:13:26 +00:00
René Stadler
758c8c6929 libs/gst/controller/gstcontroller.c: Take ref to controlled object so that it cannot disappear.
Original commit message from CVS:
Patch by: René Stadler <mail at renestadler dot de>
* libs/gst/controller/gstcontroller.c: (gst_controller_new_valist),
(gst_controller_new_list), (_gst_controller_dispose),
(_gst_controller_finalize), (_gst_controller_class_init):
Take ref to controlled object so that it cannot disappear.
Fixes #357432.
2006-10-10 14:13:08 +00:00
Wim Taymans
c549303d73 libs/gst/check/gstcheck.c: Activate/deactivate pads in setup/teardown respectively.
Original commit message from CVS:
* libs/gst/check/gstcheck.c: (gst_check_setup_src_pad),
(gst_check_teardown_src_pad), (gst_check_setup_sink_pad),
(gst_check_teardown_sink_pad):
Activate/deactivate pads in setup/teardown respectively.
2006-10-10 14:09:43 +00:00
Zaheer Abbas Merali
6591766cee libs/gst/net/gstnetclientclock.c: Remove local debugging system and use Gstreamer's instead.
Original commit message from CVS:
2006-10-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

* libs/gst/net/gstnetclientclock.c: (gst_net_client_clock_thread):
Remove local debugging system and use Gstreamer's instead.
2006-10-09 10:14:28 +00:00
Josep Torre Valles
2f32e21d72 common/m4/gst-error.m4: Disable warning of statement not reached on Forte.
Original commit message from CVS:
2006-10-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

Patch by: Josep Torre Valles <josep@fluendo.com>

* common/m4/gst-error.m4:
Disable warning of statement not reached on Forte.
* gst/gstmessage.h:
Fix warning on Forte (value doesn't fit on enumeration).
* libs/gst/base/gstbasesink.c: (gst_base_sink_chain_unlocked):
Fix warning on Forte (value doesn't fit on enumeration).
* libs/gst/net/gstnetclientclock.c: (gst_net_client_clock_thread):
DEBUG macro says it takes minimum of 2 args and so Forte
complains about the use with just 1 arg.
* plugins/elements/gstfdsink.c:
* plugins/elements/gstfdsrc.c:
* plugins/elements/gstfilesink.c:
* plugins/elements/gstfilesrc.c:
Use correct return type for the uri handler implementations.

All these fix warnings in Forte.  Fixes bug #360860.
2006-10-09 09:32:29 +00:00
Josep Torre Valles
7869189d6a Fix a compilation issue with Forte on Solaris. inet_aton is in libresolv.
Original commit message from CVS:
2006-10-05  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

Patch by: Josep Torre Valles <josep@fluendo.com>

* common/m4/gst-error.m4:
* configure.ac:
* libs/gst/net/Makefile.am:
Fix a compilation issue with Forte on Solaris.  inet_aton is in
libresolv.
2006-10-05 15:31:16 +00:00
Tim-Philipp Müller
f468db236d Printf fixes.
Original commit message from CVS:
* gst/gstpad.c: (pre_activate):
* gst/gstregistry.c: (gst_registry_scan_path_level):
* gst/gstregistryxml.c: (load_plugin):
* libs/gst/controller/gstcontroller.c:
(gst_controlled_property_set_interpolation_mode):
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_packet_from_event_1_0):
* libs/gst/net/gstnetclientclock.c:
(gst_net_client_clock_observe_times):
* plugins/elements/gstfdsrc.c: (gst_fd_src_create):
Printf fixes.
2006-10-05 14:26:08 +00:00
Tim-Philipp Müller
3040ad0e2d libs/gst/controller/gstcontroller.c: Don't g_return_val_if_fail() on timed values with invalid timestamps inside a cr...
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c: (gst_controller_new_valist),
(gst_controller_set_from_list):
Don't g_return_val_if_fail() on timed values with invalid timestamps
inside a critical section without unlocking the mutex. Spotted by
René Stadler. (#357617)
Also, fix up refcounting properly: when returning an existing
controller, we should increase the reference only once and not
once per property and when trying to control a property again
we should also increase the refcount.
2006-09-29 12:24:50 +00:00
Wim Taymans
dd3b41efe1 libs/gst/net/: Stop reading commands when EOF as well.
Original commit message from CVS:
* libs/gst/net/gstnetclientclock.c: (gst_net_client_clock_thread):
* libs/gst/net/gstnettimeprovider.c:
(gst_net_time_provider_thread):
Stop reading commands when EOF as well.
* plugins/elements/gstfakesink.c: (gst_fake_sink_class_init):
* plugins/elements/gstfakesrc.c: (gst_fake_src_class_init):
* plugins/elements/gstidentity.c: (gst_identity_class_init):
Unify description of the dump property.
2006-09-29 08:22:22 +00:00
Jan Schmidt
5ad1430ce9 configure.ac: Don't pull in gmodule-2.0.pc as a dependency in our .pc files - we want gmodule-no-export-2.0.pc instea...
Original commit message from CVS:
* configure.ac:
Don't pull in gmodule-2.0.pc as a dependency in our .pc files - we
want gmodule-no-export-2.0.pc instead so that we don't drag in
--export-dynamic on every project that links to GStreamer.
Also, make our export regex only match the start of symbols, rather
than any symbol that contains '_gst' somewhere.
* libs/gst/check/Makefile.am:
The libgstcheck we build does however need export-dynamic, as it
produces some symbols that don't match our _gst... style regex.
2006-09-28 11:11:28 +00:00
Wim Taymans
a0e5a4a964 docs/random/moving-plugins: Make it clear that the "compiled-in descriptions" really mean the element details.
Original commit message from CVS:
* docs/random/moving-plugins:
Make it clear that the "compiled-in descriptions" really mean
the element details.
* libs/gst/base/gstbasesink.c: (gst_base_sink_commit_state),
(gst_base_sink_wait_preroll):
Update docs.
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstbasesrc.c: (gst_base_src_wait_playing),
(gst_base_src_get_range), (gst_base_src_activate_push):
* libs/gst/base/gstbasesrc.h:
Added function to block while waiting for PLAYING, this function
is used by live sources that block on the clock.
API: gst_base_src_wait_playing()
2006-09-27 13:19:55 +00:00
Antoine Tremblay
3a0f9058ba libs/gst/base/gstbasesrc.c: Match _start/_stop calls in the activate functions. Remove redundant _stop call from the ...
Original commit message from CVS:
Based on patch by: Antoine Tremblay <hexa00 at gmail dot com>
* libs/gst/base/gstbasesrc.c:
(gst_base_src_default_check_get_range), (gst_base_src_start),
(gst_base_src_activate_push), (gst_base_src_activate_pull),
(gst_base_src_change_state):
Match _start/_stop calls in the activate functions. Remove redundant
_stop call from the state change function. Fixes #356910.
Turn failure DEBUG into ERROR.
2006-09-23 09:30:40 +00:00
Stefan Kost
abfedeb4b8 libs/gst/controller/gstcontroller.c: Ref instances when returning them again (fixes #357180)
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c: (gst_controller_new_valist),
(gst_controller_new_list):
Ref instances when returning them again (fixes #357180)
2006-09-22 13:32:43 +00:00
Wim Taymans
53bf2d570c gst/gstelement.c: Use _DEBUG_OBJECT some more.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_post_message),
(gst_element_dispose):
Use _DEBUG_OBJECT some more.
* libs/gst/base/gstbasesrc.c: (gst_base_src_loop):
Avoid typechecks.
* tools/gst-launch.c: (main):
If the toplevel element is not a GstPipeline, it must be put in a
pipeline so that a bus and clock is selected.
2006-09-18 13:44:12 +00:00
Tim-Philipp Müller
285f89d900 libs/gst/base/gstbasesrc.c: JITTER, RATE, and LATENCY query should be handled by the default case and not by the CONV...
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_default_query):
JITTER, RATE, and LATENCY query should be handled by the
default case and not by the CONVERT query code.
2006-09-17 19:31:27 +00:00
Edward Hervey
63b1a81cf8 libs/gst/base/gstbasetransform.c: Check if requested caps are the same as the sinks caps IF
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_buffer_alloc):
Check if requested caps are the same as the sinks caps IF
->have_same_caps is TRUE. If they are not, act as if have_same_caps
is FALSE.
This fixes the renegotiation issues stated in #352827.
2006-09-16 12:49:02 +00:00
Wim Taymans
3db585b2d9 libs/gst/base/gstbasesink.c: Make sure that our internal state is correct when we commit our state asynchronously. Th...
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_commit_state),
(gst_base_sink_wait_preroll), (gst_base_sink_do_sync),
(gst_base_sink_preroll_object):
Make sure that our internal state is correct when we commit our state
asynchronously. This solves a race where a state change to PLAYING
could cause the sink to remain blocked in preroll in some situations.
2006-09-15 09:49:14 +00:00
Wim Taymans
6efdf610a3 Expose logic to wait for preroll so that subclasses such as audiosink can also use this method.
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstbasesink.c: (gst_base_sink_wait_preroll),
(gst_base_sink_do_sync):
* libs/gst/base/gstbasesink.h:
Expose logic to wait for preroll so that subclasses such as audiosink
can also use this method.
API: gst_base_sink_wait_preroll()
2006-09-15 08:47:36 +00:00
Wim Taymans
b1cb4a633c libs/gst/net/: Make stuff compile on windows. Fixes #345295.
Original commit message from CVS:
* libs/gst/net/gstnetclientclock.c: (inet_aton),
(gst_net_client_clock_init), (gst_net_client_clock_finalize),
(gst_net_client_clock_do_select), (gst_net_client_clock_new):
* libs/gst/net/gstnetclientclock.h:
* libs/gst/net/gstnettimepacket.c: (gst_net_time_packet_send):
* libs/gst/net/gstnettimepacket.h:
* libs/gst/net/gstnettimeprovider.c: (inet_aton),
(gst_net_time_provider_init), (gst_net_time_provider_finalize),
(gst_net_time_provider_thread), (gst_net_time_provider_new):
* libs/gst/net/gstnettimeprovider.h:
Make stuff compile on windows. Fixes #345295.
2006-09-05 08:35:20 +00:00
Wim Taymans
41fbe76808 docs/: Fix docs some more.
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* docs/plugins/gstreamer-plugins-sections.txt:
Fix docs some more.
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_remove_pad),
(gst_collect_pads_event):
* libs/gst/base/gstcollectpads.h:
Documentation updates.
Free queued buffer when removing a pad.
2006-09-01 10:26:52 +00:00
Edward Hervey
8b6246f275 libs/gst/base/gstbasesink.c: Inform GstSegment of the last stop position in order for the current segment to have a p...
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times):
Inform GstSegment of the last stop position in order for the current
segment to have a proper duration if it doesn't have a specific stop
position from which a duration could be calculated.
This bug was noticeable when a non-flushing, non-update new segment was
followed by another segment (all buffers from the new segment were being
dropped).
2006-08-28 15:57:39 +00:00
Wim Taymans
4016e6c577 libs/gst/base/gstbasesrc.c: Small comment update.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek):
Small comment update.
* plugins/elements/gstidentity.c: (gst_identity_class_init),
(gst_identity_transform_ip):
Drop-probability is broken, mention this in the code with a
FIXME and also in the property description.
Make silent also be silent about the drop messages.
2006-08-28 15:48:24 +00:00
Stefan Kost
fc8d184bba implement caps merging (fixes #352580)
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstcaps.c: (gst_caps_structure_is_subset_field),
(gst_caps_structure_is_subset), (gst_caps_merge),
(gst_caps_merge_structure):
* gst/gstcaps.h:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_transform_caps):
* tests/check/gst/gstcaps.c: (GST_START_TEST), (gst_caps_suite):
implement caps merging (fixes #352580)
2006-08-24 10:40:31 +00:00
Stefan Kost
38d2d33f22 API: Add gst_caps_merge() and use it in basetransform, fixes #345444 in a better way
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstcaps.c: (gst_structure_is_equal_foreach),
(gst_caps_merge):
* gst/gstcaps.h:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_transform_caps):
API: Add gst_caps_merge() and use it in basetransform, fixes #345444
in a better way
2006-08-21 14:54:31 +00:00
Edward Hervey
4abd3fb116 libs/gst/base/gstbasetransform.c: Only call downstream buffer_alloc if transform element is passthrough or always_in_...
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_buffer_alloc):
Only call downstream buffer_alloc if transform element is passthrough
or always_in_place. Closes #350449.
2006-08-21 09:20:42 +00:00
Stefan Kost
c789a10963 Simplify caps to get rid of duplicates, fixes #345444
Original commit message from CVS:
* gst/gst.c:
* gst/gstpad.c: (gst_pad_set_active):
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_transform_caps):
Simplify caps to get rid of duplicates, fixes #345444
2006-08-20 19:30:09 +00:00
Tim-Philipp Müller
cf8df184c7 Make gstcheck stuff show up in docs (still needs to be documented properly though).
Original commit message from CVS:
* docs/libs/gstreamer-libs-docs.sgml:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/check/gstbufferstraw.c:
Make gstcheck stuff show up in docs (still needs to
be documented properly though).
2006-08-17 10:46:19 +00:00
Tim-Philipp Müller
8e2f05d8ce libs/gst/check/gstcheck.h: Use const gchar * variables in fail_unless_equals_string macro to avoid compiler warnings ...
Original commit message from CVS:
* libs/gst/check/gstcheck.h:
Use const gchar * variables in fail_unless_equals_string
macro to avoid compiler warnings (and don't use tabs for
indenting).
2006-08-15 18:29:22 +00:00
Tim-Philipp Müller
a85462ec7f libs/gst/check/gstcheck.h: Fix ASSERT_CRITICAL and ASSERT_WARNING macros to actually print something when they fail.
Original commit message from CVS:
* libs/gst/check/gstcheck.h:
Fix ASSERT_CRITICAL and ASSERT_WARNING macros to actually
print something when they fail.
2006-08-15 09:33:24 +00:00
Wim Taymans
f85c2fd84d libs/gst/base/gstbasesrc.c: If the parent state change function failed, don't assume we can safely stop the source, t...
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_change_state):
If the parent state change function failed, don't assume we can safely
stop the source, this will be done when the pads are deactivated.
2006-08-14 07:44:14 +00:00
Andy Wingo
86b76f4c22 GST_DISABLE_DEPRECATED is only for users of API that don't want to see deprecated functions in the headers; people th...
Original commit message from CVS:
2006-08-11  Andy Wingo  <wingo@pobox.com>

* configure.ac:
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packetizer_new):
* tests/check/libs/gdp.c: (gst_dp_suite): GST_DISABLE_DEPRECATED
is only for users of API that don't want to see deprecated
functions in the headers; people that want to compile out
deprecated code should pass -DGST_REMOVE_DEPRECATED into the
CFLAGS. Fixes the build of multifdsink, or will soon..
2006-08-11 15:26:33 +00:00
Stefan Kost
876f4e4722 libs/gst/controller/gstcontroller.h: fix ABI size-correction
Original commit message from CVS:
* libs/gst/controller/gstcontroller.h:
fix ABI size-correction
* tests/check/libs/gdp.c: (gst_dp_suite):
make tests that use deprecated API conditional
2006-08-10 20:05:30 +00:00
Stefan Kost
9460b3ab7b API: add gst_object_{s,g}et_control_rate(), add private data section, fix docs
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/controller/gstcontroller.c:
(_gst_controller_get_property), (_gst_controller_set_property),
(_gst_controller_init), (_gst_controller_class_init):
* libs/gst/controller/gstcontroller.h:
* libs/gst/controller/gsthelper.c: (gst_object_get_control_rate),
(gst_object_set_control_rate):
API: add gst_object_{s,g}et_control_rate(), add private data section,
fix docs
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packetizer_new):
* libs/gst/dataprotocol/dataprotocol.h:
add deprecation guards to make gtk-doc happy and allow disabling cruft
2006-08-10 19:46:14 +00:00
Edward Hervey
cb49718e86 libs/gst/base/gstbasetransform.c: Even if we can't figure out the proper format to request downstream, call buffer_al...
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_buffer_alloc):
Even if we can't figure out the proper format to request downstream,
call buffer_alloc() downstream with the input parameters without setting
the caps on the srcpad. This will force negotiation in the chain
function.
Closes #350449
2006-08-09 11:01:20 +00:00
Wim Taymans
319e774f55 libs/gst/dataprotocol/dataprotocol.c: Make debug category static
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_header_from_buffer_any), (gst_dp_packet_from_caps_any),
(gst_dp_crc), (gst_dp_header_payload_length),
(gst_dp_header_payload_type), (gst_dp_packet_from_event),
(gst_dp_packet_from_event_1_0), (gst_dp_buffer_from_header),
(gst_dp_caps_from_packet), (gst_dp_event_from_packet_0_2),
(gst_dp_event_from_packet), (gst_dp_validate_header),
(gst_dp_validate_payload):
Make debug category static
Constify the crc table.
Do some more arg checking in public functions.
Fix some docs and do some small cleanups.
* tests/check/libs/gdp.c: (GST_START_TEST), (gst_dp_suite):
Add some more checks to see if GDP deals with bogus input.
2006-08-02 15:19:30 +00:00
Wim Taymans
2d6cf77ed4 libs/gst/base/gstbasetransform.c: Use OBJECT_LOCK and refcounting to get the pad caps in the buffer_alloc function be...
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_buffer_alloc):
Use OBJECT_LOCK and refcounting to get the pad caps in the
buffer_alloc function because the caps could change while we are
busy with them. Fixes #349105
2006-07-31 15:12:59 +00:00
Tim-Philipp Müller
8b97e07338 libs/gst/base/gstbasesrc.h: Note in the docs that the ::newsegment vfunc is not actually used by
Original commit message from CVS:
* libs/gst/base/gstbasesrc.h:
Note in the docs that the ::newsegment vfunc is not actually used by
GstBaseSrc.
2006-07-29 13:45:09 +00:00
Wim Taymans
6939f83e75 libs/gst/base/gstcollectpads.c: When flushing a pad, also clear the queued buffer so that we don't accidentally use i...
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c:
(gst_collect_pads_set_flushing_unlocked), (gst_collect_pads_pop),
(gst_collect_pads_clear), (gst_collect_pads_flush),
(gst_collect_pads_event), (gst_collect_pads_chain):
When flushing a pad, also clear the queued buffer so that we don't
accidentally use it when we shouldn't.
Fix leaks by inreffing incomming buffer.
Flush out queued buffers in case of errors.
Fixes #347452.
2006-07-28 14:09:10 +00:00
Jan Schmidt
38aad233cc libs/gst/base/gstbasetransform.c: Extra debug output
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c: (gst_base_transform_setcaps):
Extra debug output
* tests/check/libs/gdp.c: (gst_dp_suite):
Take a whack at fixing the ppc compile using a different define to
disable the broken test.
* tests/check/pipelines/parse-launch.c: (GST_START_TEST):
Remove excess g_print()
2006-07-27 14:32:01 +00:00
Andy Wingo
1cd7bc447b libs/gst/check/Makefile.am (libgstcheck_@GST_MAJORMINOR@include_HEADERS)
Original commit message from CVS:
2006-07-21  Andy Wingo  <wingo@pobox.com>

* libs/gst/check/Makefile.am
(libgstcheck_@GST_MAJORMINOR@include_HEADERS)
(libgstcheck_@GST_MAJORMINOR@_la_SOURCES):
* libs/gst/check/gstbufferstraw.h:
* libs/gst/check/gstbufferstraw.c: Add some new hype testing
functions, thus proving I am still a GStreamer haxor. OK I wrote
them a long time ago, but anyways.
2006-07-21 15:48:04 +00:00
Wim Taymans
21b8eaeab5 Revert fix for regression in #347408 after release.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_update_length):
* tests/check/elements/filesrc.c: (GST_START_TEST):
Revert fix for regression in #347408 after release.
2006-07-14 16:42:20 +00:00
Wim Taymans
1c6b809344 Revert pull-0 fix for release. Disable check. Fixes #347408.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_update_length):
* tests/check/elements/filesrc.c: (GST_START_TEST):
Revert pull-0 fix for release. Disable check. Fixes #347408.
2006-07-13 15:51:05 +00:00
Thomas Vander Stichele
4e254808c4 libs/gst/dataprotocol/dataprotocol.c: Fixes #347337: failure to deserialize event packets with empty payload (only ev...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_event_from_packet_1_0):
Fixes #347337: failure to deserialize event packets with
empty payload (only event type)
2006-07-13 14:02:16 +00:00
Wim Taymans
ac216fcfdd libs/gst/base/gstbasesrc.c: Update docs. blocksize == 0 now means the default blocksize when working in push based mode.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
(gst_base_src_wait), (gst_base_src_update_length),
(gst_base_src_get_range), (gst_base_src_default_check_get_range),
(gst_base_src_check_get_range), (gst_base_src_pad_check_get_range),
(gst_base_src_loop), (gst_base_src_start),
(gst_base_src_activate_pull):
Update docs.
blocksize == 0 now means the default blocksize when working in push
based mode.
Remove some pointless asserts in _wait function.
Fix offset/length calculations and EOS handling. We can now pull 0
bytes as well, which is allowed.
use _check_get_range() to decide if we can operate in _pull based
mode.
Fix refcounting leak when check_get_range function was not
implemented.
API GstBaseSrc::blocksize range can be 0 too now (default)
* tests/check/elements/filesrc.c: (GST_START_TEST),
(filesrc_suite):
Added check to test _get_range() behaviour.
2006-07-06 15:46:25 +00:00
Wim Taymans
751282f41c libs/gst/base/gstpushsrc.c: Add some more docs here and there.
Original commit message from CVS:
* libs/gst/base/gstpushsrc.c: (gst_push_src_check_get_range):
Add some more docs here and there.
2006-07-05 18:20:58 +00:00
Wim Taymans
931ef328d8 libs/gst/base/gstbasesink.c: When operating in pull mode update the offset so that we read sequentially.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_preroll_object),
(gst_base_sink_loop), (gst_base_sink_get_position):
When operating in pull mode update the offset so that we
read sequentially.
2006-07-05 18:18:47 +00:00
Wim Taymans
d7c7dcc686 libs/gst/base/gstbasetransform.c: Make sure the buffer we pass to transform_ip has a refcount of 1 and thus is writab...
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buffer),
(gst_base_transform_buffer_alloc),
(gst_base_transform_handle_buffer):
Make sure the buffer we pass to transform_ip has a refcount of
1 and thus is writable. Fixes #343196
2006-07-05 08:16:12 +00:00
Thomas Vander Stichele
904f7041d0 libs/gst/check/gstcheck.c: if we get the wrong message, give us the types as string
Original commit message from CVS:
* libs/gst/check/gstcheck.c: (gst_check_message_error),
(gst_check_run_suite):
if we get the wrong message, give us the types as string
* plugins/elements/gstfilesrc.c: (gst_file_src_start):
Fix a translatable
* tests/check/elements/filesrc.c: (GST_START_TEST):
add a test for trying to open a non-existing file
2006-07-02 23:22:31 +00:00
Thomas Vander Stichele
f8fa84b087 libs/gst/check/gstcheck.h: add some assert_ as alias for fail_unless_*
Original commit message from CVS:
* libs/gst/check/gstcheck.h:
add some assert_ as alias for fail_unless_*
* tests/check/gst/gst.c: (GST_START_TEST), (gst_suite):
increase test coverage
2006-07-02 22:05:48 +00:00
Thomas Vander Stichele
55856b344c libs/gst/dataprotocol/Makefile.am: build dataprotocol test by linking to the lib, instead of compiling the source, so...
Original commit message from CVS:
* libs/gst/dataprotocol/Makefile.am:
build dataprotocol test by linking to the lib, instead of
compiling the source, so we get coverage
* tests/check/Makefile.am:
* tests/check/elements/filesrc.c: (event_func), (setup_filesrc),
(cleanup_filesrc), (GST_START_TEST), (filesrc_suite):
add a test for filesrc
2006-07-02 09:04:45 +00:00
Thomas Vander Stichele
b48e0d830d moap ignore
Original commit message from CVS:
moap ignore
2006-07-02 00:39:28 +00:00
Thomas Vander Stichele
6c54c2fe59 moap ignore
Original commit message from CVS:
moap ignore
2006-07-02 00:38:35 +00:00
Thomas Vander Stichele
3c3bbc87d4 configure.ac: set CFLAGS and friends to -O0 if gcov is being used add GCOV LIBS
Original commit message from CVS:
* configure.ac:
set CFLAGS and friends to -O0 if gcov is being used
add GCOV LIBS
* gst/Makefile.am:
* libs/gst/base/Makefile.am:
* libs/gst/check/Makefile.am:
* libs/gst/controller/Makefile.am:
* libs/gst/dataprotocol/Makefile.am:
* libs/gst/net/Makefile.am:
* plugins/elements/Makefile.am:
* plugins/indexers/Makefile.am:
add makefile rules to generate gcov data and clean up
* tests/check/Makefile.am:
add a coverage target that generates an html overview
of coverage data
2006-07-01 23:26:06 +00:00
Thomas Vander Stichele
374b55af56 libs/gst/check/gstcheck.*: create a macro and function so that the simple unit test case can be just one macro to cre...
Original commit message from CVS:
* libs/gst/check/gstcheck.c: (gst_check_run_suite):
* libs/gst/check/gstcheck.h:
create a macro and function so that the simple unit test
case can be just one macro to create main()
2006-07-01 20:54:25 +00:00
Tim-Philipp Müller
541eba03a4 gst/gstinfo.c: Promote GST_DEBUG_CATEGORY_STATIC in example in docs.
Original commit message from CVS:
* gst/gstinfo.c:
Promote GST_DEBUG_CATEGORY_STATIC in example in docs.
* libs/gst/net/gstnetclientclock.c:
* libs/gst/net/gstnettimeprovider.c:
Use GST_DEBUG_CATEGORY_STATIC here too (#342503).
2006-06-23 13:16:46 +00:00
Wim Taymans
201bdf7e27 libs/gst/base/gstbasetransform.c: Forgot to remove two unneeded unrefs.
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_buffer_alloc):
Forgot to remove two unneeded unrefs.
Simplify a check _is_equal allready checks the obvious case.
2006-06-22 15:12:50 +00:00
Wim Taymans
ccb2e93a3a gst/gstcaps.c: Fix crasher when passed NULL. Doc clarification.
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_replace):
Fix crasher when passed NULL. Doc clarification.
Optimize for the trivial case.
* gst/gstpipeline.c: (gst_pipeline_change_state):
Small cleanups.
* libs/gst/base/gstbasesrc.c: (gst_base_src_loop):
Small documentation cleanup.
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_buffer_alloc):
Don't use silly gst_pad_get_negotiated_caps, GST_PAD_CAPS
is what we need and it avoids a whole lot of redundant
refcount operations.
2006-06-22 13:51:19 +00:00
Wim Taymans
b9000a7878 libs/gst/base/: Don't randomly and silently reset a segment when the format changes as this is a bug somewhere upstre...
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_configure_segment),
(gst_base_sink_preroll_object), (gst_base_sink_get_position):
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_sink_eventfunc):
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_event):
Don't randomly and silently reset a segment when the format
changes as this is a bug somewhere upstream. Fixes #330379.
2006-06-14 10:31:43 +00:00
Wouter Paesen
fb4ad149d6 libs/gst/controller/gstcontroller.c: Fix controlling of float properties (#344849).
Original commit message from CVS:
Patch by: Wouter Paesen  <wouter at kangaroot net>
* libs/gst/controller/gstcontroller.c:
(gst_controlled_property_new):
Fix controlling of float properties (#344849).
* tests/check/libs/controller.c:
(gst_test_mono_source_get_property),
(gst_test_mono_source_set_property),
(gst_test_mono_source_class_init), (GST_START_TEST):
While we're at it, add some float stuff to unit test.
2006-06-14 08:26:53 +00:00
Thomas Vander Stichele
0734eb921c docs/: add a gdp image
Original commit message from CVS:

* docs/README:
* docs/images/gdp-header.svg:
add a gdp image
* docs/libs/Makefile.am:
* docs/libs/gdp-header.png:
* libs/gst/dataprotocol/dataprotocol.c:
add it to the API docs
* docs/manual/intro-motivation.xml:
fix typo
2006-06-13 19:24:34 +00:00
Wim Taymans
7e972ee6b9 Add G_UNLIKELY in type registration.
Original commit message from CVS:
* gst/gsterror.c: (gst_g_error_get_type):
* gst/gstpadtemplate.c: (gst_pad_template_get_type),
(gst_static_pad_template_get_type):
* gst/gsttaglist.c: (gst_tag_list_get_type):
* gst/gsttagsetter.c: (gst_tag_setter_get_type):
* gst/gsttypefindfactory.c: (gst_type_find_factory_get_type):
* gst/gsturi.c: (gst_uri_handler_get_type):
* gst/gstvalue.c: (gst_date_get_type):
* gst/gstxml.c: (gst_xml_get_type):
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_type),
(gst_base_sink_preroll_object), (gst_base_sink_get_position):
* libs/gst/base/gstbasesrc.c: (gst_base_src_get_type):
Add G_UNLIKELY in type registration.
2006-06-12 08:55:21 +00:00
Thomas Vander Stichele
d58668de37 add note to docs about GDP versioning; remove tmpl file
Original commit message from CVS:
add note to docs about GDP versioning; remove tmpl file
2006-06-06 14:29:54 +00:00
Thomas Vander Stichele
59766b4cd3 libs/gst/dataprotocol/dataprotocol.*: API: add a GstDPPacketizer object, and create/free functions
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_header_from_buffer_any), (gst_dp_packet_from_caps_any),
(gst_dp_version_get_type), (gst_dp_init),
(gst_dp_header_from_buffer), (gst_dp_header_from_buffer_1_0),
(gst_dp_packet_from_caps), (gst_dp_packet_from_caps_1_0),
(gst_dp_packet_from_event), (gst_dp_packet_from_event_1_0),
(gst_dp_event_from_packet_0_2), (gst_dp_event_from_packet_1_0),
(gst_dp_event_from_packet), (gst_dp_packetizer_new),
(gst_dp_packetizer_free):
* libs/gst/dataprotocol/dataprotocol.h:
API: add a GstDPPacketizer object, and create/free functions
API: add GstDPVersion enum
Add 1.0 event function that uses the string serialization
Serialize more useful buffer flags
Fixes #343988
2006-06-06 14:24:00 +00:00
Thomas Vander Stichele
3a177aa40e cosmetics
Original commit message from CVS:
cosmetics
2006-06-06 13:53:25 +00:00
Thomas Vander Stichele
e036ea0995 libs/gst/check/gstcheck.*: factor out the method from tests that checks size of structures, and add code to generate ...
Original commit message from CVS:
* libs/gst/check/gstcheck.c: (gst_check_abi_list):
* libs/gst/check/gstcheck.h:
factor out the method from tests that checks size of structures,
and add code to generate the header containing these sizes
* tests/check/gst/gstabi.c: (GST_START_TEST):
* tests/check/gst/struct_i386.h:
* tests/check/libs/libsabi.c: (GST_START_TEST):
* tests/check/libs/struct_i386.h:
use it
2006-06-06 13:48:20 +00:00
Thomas Vander Stichele
dbb7630f7d libs/gst/dataprotocol/dataprotocol.c: factor out CRC code
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_header_from_buffer), (gst_dp_packet_from_caps),
(gst_dp_packet_from_event):
factor out CRC code
2006-06-02 16:46:19 +00:00
Thomas Vander Stichele
53b73f3b5c libs/gst/check/gstcheck.c: make sure we unset caps
Original commit message from CVS:
* libs/gst/check/gstcheck.c: (gst_check_teardown_src_pad):
make sure we unset caps
2006-06-02 16:45:08 +00:00
Michael Smith
c4b93a9321 libs/gst/check/gstcheck.*: Add a cond/mutex to the check support lib, signal this whenever we add to the buffers list...
Original commit message from CVS:
* libs/gst/check/gstcheck.c: (gst_check_init),
(gst_check_chain_func):
* libs/gst/check/gstcheck.h:
Add a cond/mutex to the check support lib, signal this whenever we
add to the buffers list. This will allow tests to not busy-wait on
the buffer-list.
2006-06-02 16:41:02 +00:00
Thomas Vander Stichele
9c25115125 libs/gst/dataprotocol/dataprotocol.c: factor out some common header init code
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_header_from_buffer), (gst_dp_packet_from_caps),
(gst_dp_packet_from_event):
factor out some common header init code
2006-06-02 10:58:47 +00:00
Thomas Vander Stichele
3865e16771 API: make gst_dp_crc() public
Original commit message from CVS:

* docs/libs/gstreamer-libs-sections.txt:
* docs/libs/tmpl/gstdataprotocol.sgml:
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_crc):
* libs/gst/dataprotocol/dataprotocol.h:
API: make gst_dp_crc() public
2006-06-02 10:08:31 +00:00
Stefan Kost
86b5887cd7 gst/gsttagsetter.h: Can't cast ifaces to a class
Original commit message from CVS:
* gst/gsttagsetter.h:
Can't cast ifaces to a class
* libs/gst/net/gstnetclientclock.h:
* libs/gst/net/gstnettimeprovider.h:
* plugins/elements/gstfakesink.h:
* plugins/elements/gstfakesrc.h:
* plugins/elements/gstfdsink.h:
* plugins/elements/gstfdsrc.h:
* plugins/elements/gstfilesink.h:
* plugins/elements/gstfilesrc.h:
* plugins/elements/gstidentity.h:
* plugins/elements/gstqueue.h:
* plugins/elements/gsttee.h:
* plugins/indexers/gstfileindex.c:
* plugins/indexers/gstmemindex.c:
* tests/old/examples/plugins/example.h:
Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
2006-06-01 18:22:14 +00:00
Thomas Vander Stichele
2893818bb3 libs/gst/dataprotocol/dataprotocol.c: make sure we zero the whole ABI-compatible area
Original commit message from CVS:

* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_header_from_buffer):
make sure we zero the whole ABI-compatible area
2006-06-01 11:13:44 +00:00
Alessandro Decina
d37656cf8d libs/gst/base/gstcollectpads.c: Make sure the EOS flag is cleared from pads after a flush or stop. Fixes #343538.
Original commit message from CVS:
Patch by: Alessandro Decina <alessandro at nnva dot org>
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_stop):
Make sure the EOS flag is cleared from pads after a flush
or stop. Fixes #343538.
* tests/check/libs/collectpads.c: (GST_START_TEST),
(gst_collect_pads_suite):
Added test for collectpads reusage after EOS.
2006-06-01 09:02:23 +00:00
Wim Taymans
cbc70ba654 libs/gst/base/gstcollectpads.c: Handle the case where a pad is removed from the collection that could cause the other...
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_remove_pad),
(gst_collect_pads_chain):
Handle the case where a pad is removed from the collection
that could cause the other pads to become collectable.
2006-05-30 15:55:19 +00:00
Wim Taymans
2a51528a41 gst/gstelement.c: Clarify the use of _release_request_pad() and _get_request_pad() a bit better.
Original commit message from CVS:
* gst/gstelement.c:
Clarify the use of _release_request_pad() and
_get_request_pad() a bit better.
* libs/gst/base/gstadapter.c: (gst_adapter_peek),
(gst_adapter_take_buffer):
Fix some doc and comment typos.
2006-05-30 15:53:40 +00:00
Wim Taymans
f55a023510 libs/gst/base/gstcollectpads.c: When rebuilding the pad list, don't leak the previous list.
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_check_pads):
When rebuilding the pad list, don't leak the previous list.
2006-05-30 11:43:43 +00:00
Lutz Mueller
eb3f062cc1 libs/gst/base/gstbasesrc.c: Publish supported query types.
Original commit message from CVS:
Patch by: Lutz Mueller <lutz at topfrose dot de>
* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
(gst_base_src_get_query_types), (gst_base_src_update_length):
Publish supported query types.
Update last_stop field in get_range mode so the position
query works. Fixes #342321.
2006-05-30 10:57:44 +00:00
Alessandro Decina
fc62a6f511 libs/gst/base/gstcollectpads.c: Unlock mutex when removing an unknown pad.
Original commit message from CVS:
Patch by: Alessandro Decina <alessandro at nnva dot org>
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_remove_pad):
Unlock mutex when removing an unknown pad.
Fixes #343334.
* tests/check/Makefile.am:
* tests/check/libs/collectpads.c: (collected_cb), (push_buffer),
(push_event), (setup), (teardown), (GST_START_TEST),
(gst_collect_pads_suite), (main):
Added collecpads check, disabled for now as check crashes for
some reason.
2006-05-30 09:42:09 +00:00
Wim Taymans
ccc17d0bff libs/gst/base/gstcollectpads.c: Don't leak pads lists.
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_finalize):
Don't leak pads lists.
2006-05-29 17:20:03 +00:00
Wim Taymans
506118081e API: gst_collect_pads_set_flushing
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstcollectpads.c:
(gst_collect_pads_set_flushing_unlocked),
(gst_collect_pads_set_flushing), (gst_collect_pads_start),
(gst_collect_pads_stop):
* libs/gst/base/gstcollectpads.h:
API: gst_collect_pads_set_flushing
Added api to set the pads to flushing, usefull for seeking
code in elements using collectpads.
Clear segment when receiving a flush.
2006-05-29 16:00:13 +00:00
Wim Taymans
803ecd5d58 libs/gst/net/gstnetclientclock.c: Initialize variable before using. Fixes #342820.
Original commit message from CVS:
* libs/gst/net/gstnetclientclock.c: (gst_net_client_clock_start):
Initialize variable before using. Fixes #342820.
2006-05-25 15:52:19 +00:00
Tim-Philipp Müller
651061dfd9 libs/gst/base/gsttypefindhelper.c: Fix off-by-one bug that would only allow peeks of N-1 bytes from the start even if...
Original commit message from CVS:
* libs/gst/base/gsttypefindhelper.c: (buf_helper_find_peek):
Fix off-by-one bug that would only allow peeks of N-1 bytes
from the start even if the buffer to typefind on contains
in fact N bytes of data (makes vorbis typefinding from a
vorbis identification header buffer work).
* tests/check/Makefile.am:
* tests/check/libs/.cvsignore:
* tests/check/libs/typefindhelper.c: (GST_START_TEST),
(gst_typefindhelper_suite), (main), (foobar_typefind),
(plugin_init):
Add very basic unit test for gst_type_find_helper_for_buffer()
that checks for the problem fixed above.
2006-05-24 17:11:06 +00:00
Mark Nauwelaerts
da7cd3b635 libs/gst/base/gstcollectpads.c: clear/reset segment info in FLUSH_STOP.
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet dot be>
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_remove_pad),
(gst_collect_pads_event):
clear/reset segment info in FLUSH_STOP.
Fixes #336929.
2006-05-23 09:40:14 +00:00
Stefan Kost
a039f14524 libs/gst/base/gstcollectpads.c: Flush queued buffer on _stop(), fixes playing again (#342454)
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_stop),
(gst_collect_pads_check_collected):
Flush queued buffer on _stop(), fixes playing again (#342454)
2006-05-22 16:30:34 +00:00
Thomas Vander Stichele
693dbcb44b debugging changes
Original commit message from CVS:
debugging changes
2006-05-22 13:31:48 +00:00
Wim Taymans
6af1d4c999 libs/gst/base/gstbasesink.c: Don't report POSITION based on clock time if sync is disabled in a sink.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
Don't report POSITION based on clock time if sync is
disabled in a sink.
2006-05-15 11:54:22 +00:00
Stefan Kost
dc3d1df8ec G_OBJECT_CLASS macro usage batch cleanup, fixes #337747 for core
Original commit message from CVS:
* gst/gstclock.c: (gst_clock_class_init):
* gst/gstindex.c: (gst_index_class_init):
* gst/gstobject.c: (gst_object_class_init):
* gst/gstpad.c: (gst_pad_class_init):
* gst/gstpipeline.c: (gst_pipeline_class_init):
* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init):
* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init):
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_class_init):
* libs/gst/net/gstnetclientclock.c:
(gst_net_client_clock_class_init):
* libs/gst/net/gstnettimeprovider.c:
(gst_net_time_provider_class_init):
* plugins/elements/gstcapsfilter.c: (gst_capsfilter_class_init):
* plugins/elements/gstfakesink.c: (gst_fake_sink_class_init):
* plugins/elements/gstfakesrc.c: (gst_fake_src_class_init):
* plugins/elements/gstfdsink.c: (gst_fd_sink_class_init):
* plugins/elements/gstfdsrc.c: (gst_fd_src_class_init):
* plugins/elements/gstfilesink.c: (gst_file_sink_class_init):
* plugins/elements/gstfilesrc.c: (gst_file_src_class_init):
* plugins/elements/gstidentity.c: (gst_identity_class_init):
* plugins/elements/gsttee.c: (gst_tee_class_init):
* tests/old/examples/plugins/example.c: (gst_example_class_init):
* tests/old/testsuite/threads/signals.c: (gst_test_class_init):
G_OBJECT_CLASS macro usage batch cleanup, fixes #337747 for core
2006-05-11 18:10:34 +00:00
Thomas Vander Stichele
7ebd6a126d libs/gst/check/gstcheck.h: add an assert for setting state to avoid lots of repetitive code in the future
Original commit message from CVS:
2006-05-10  Thomas Vander Stichele  <thomas at apestaart dot org>

* libs/gst/check/gstcheck.h:
add an assert for setting state to avoid lots of repetitive code
in the future
2006-05-10 15:49:30 +00:00
Wim Taymans
d81a21da50 libs/gst/base/gstcollectpads.*: No need to call _stop in _finalize.
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (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):
* libs/gst/base/gstcollectpads.h:
No need to call _stop in _finalize.
Iterate the main pad list in _finalize.
Added some more debug.
Free lists and data in the right order.
Also free data whem doing _remove_pad when stopped for
backward compatibility protect ::started with PAD_LOCK as
well.
2006-05-10 14:51:33 +00:00
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