Commit graph

116 commits

Author SHA1 Message Date
Edward Hervey
c138aa8648 collectpads: Make sure the CollectData list is up-to-date when reading/setting it
Without this, we risked:
* Checking the flushing state on an unexisting list
* Not setting the flushing state on pads that had just been added

Partially fixes #590056
2009-07-29 11:50:06 +02:00
Edward Hervey
fcbba9b15a collectpads: Split out _check_pads into a version without lock taking.
This is so we can use _check_pads in places where we've already taken
the lock in question.

Partially fixes #590056
2009-07-29 11:49:39 +02:00
Stefan Kost
cfae0c15e7 collectpads: make it the best of wims and edwards patch.
Check the right flushing flag, but still add it to the pad-list.
2009-07-07 00:23:41 +01:00
Edward Hervey
e6d949328f collectpads: Don't forward FLUSH_STOP if some input streams are still flushing.
This guarantees that only one FLUSH_STOP event (the last one) will be sent
downstream when a flushing seek is being done through collectpads.
2009-07-05 21:24:42 +02:00
Edward Hervey
ed18ceffe6 collectpads: Update the cookie when setting ourselves as flushing.
This forces the pad status to be re-evaluated on the next _check_pads().
2009-07-04 17:17:18 +02:00
Wim Taymans
dd3e2b557e collectpads: use the right flushing flag.
We need to use the pad private flag because the other pad flag is protected with
the pad lock instead.
2009-06-18 16:50:42 +02:00
Edward Hervey
a295d22575 collectpads: Properly handle flushing pads.
If a pad is flushing, it should not be considered as either eos or
containing data.
2009-06-18 16:43:27 +02:00
Edward Hervey
00cbbc87c7 Remove unused variables detected by LLVM's Clang static analyzer. 2009-04-03 12:56:48 +02:00
Stefan Kost
c2f1cb40fc collectpads: add debug logging to make it easier to trace it 2009-03-15 23:41:33 +02:00
Stefan Kost
de48f9c507 collectpads: revert accidential commit from the queue (me should start using branches) 2009-03-06 22:10:10 +02:00
Stefan Kost
436b0e7275 collectpads: reliably go to eos. Fixes #574160
Update collectpads status when removing pads.
2009-03-06 21:50:19 +02:00
Edward Hervey
8d18476d94 libs/gst/base/gstcollectpads.c: Use the name of the pads instead of a pointer, helps in debugging.
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_available):
Use the name of the pads instead of a pointer, helps in debugging.
2009-01-03 18:39:38 +00:00
Sebastian Dröge
b997b0545a Correct all relevant warnings found by the sparse semantic code analyzer. This include marking several symbols static...
Original commit message from CVS:
* gst/gstconfig.h.in:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_read_buffer):
* libs/gst/check/gstcheck.c: (gst_check_log_message_func),
(gst_check_log_critical_func), (gst_check_drop_buffers),
(gst_check_element_push_buffer_list):
* libs/gst/controller/gstcontroller.c: (gst_controller_get),
(gst_controller_get_type):
* libs/gst/controller/gsthelper.c: (gst_object_control_properties),
(gst_object_get_controller), (gst_object_get_control_source):
* libs/gst/controller/gstinterpolationcontrolsource.c:
(gst_interpolation_control_source_new):
* libs/gst/controller/gstlfocontrolsource.c:
(gst_lfo_control_source_new):
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_event_from_packet_0_2):
* plugins/elements/gstfdsrc.c:
* plugins/elements/gstmultiqueue.c:
* plugins/elements/gsttee.c:
* plugins/elements/gsttypefindelement.c:
* plugins/indexers/gstfileindex.c: (_file_index_id_save_xml),
(gst_file_index_add_association):
* plugins/indexers/gstmemindex.c:
* tests/benchmarks/gstpollstress.c: (mess_some_more):
* tests/check/elements/queue.c: (setup_queue):
* tests/check/gst/gstpipeline.c:
* tests/check/libs/collectpads.c: (setup), (teardown),
(gst_collect_pads_suite):
* tests/examples/adapter/adapter_test.c:
* tests/examples/metadata/read-metadata.c: (make_pipeline):
* tests/examples/xml/createxml.c:
* tests/examples/xml/runxml.c:
* tools/gst-inspect.c:
* tools/gst-run.c:
Correct all relevant warnings found by the sparse semantic code
analyzer. This include marking several symbols static, using
NULL instead of 0 for pointers, not using variable sized arrays
on the stack, moving variable declarations to the beginning of
a block and using "foo (void)" instead of "foo ()" for declarations.
2008-02-29 12:41:33 +00:00
Stefan Kost
b1a800fa5f Add sub-buffer functions to collectpads. Fixes #516187.
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstcollectpads.c:
* libs/gst/base/gstcollectpads.h:
Add sub-buffer functions to collectpads. Fixes #516187.
API: gst_collect_pads_take_buffer(), gst_collect_pads_read_buffer()
2008-02-15 13:15:17 +00:00
Sebastian Dröge
9db28f8537 Don't use base_init where not absolutely necessary. For example it's not necessary anymore for adding pad templates o...
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_get_type), (gst_bin_class_init):
* gst/gstpipeline.c: (gst_pipeline_get_type),
(gst_pipeline_class_init):
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_type),
(gst_base_sink_class_init):
* libs/gst/base/gstbasesrc.c: (gst_base_src_get_type),
(gst_base_src_class_init):
* libs/gst/base/gstbasetransform.c: (gst_base_transform_get_type),
(gst_base_transform_class_init):
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_base_init),
(gst_collect_pads_class_init):
* libs/gst/base/gstdataqueue.c: (gst_data_queue_get_type):
* libs/gst/net/gstnettimeprovider.c:
(gst_net_time_provider_base_init),
(gst_net_time_provider_class_init):
* plugins/elements/gstcapsfilter.c: (gst_capsfilter_base_init),
(gst_capsfilter_class_init):
* plugins/elements/gstfakesink.c: (gst_fake_sink_base_init),
(gst_fake_sink_class_init):
* plugins/elements/gstfakesrc.c: (gst_fake_src_base_init),
(gst_fake_src_class_init):
* plugins/elements/gstfdsink.c: (gst_fd_sink_base_init),
(gst_fd_sink_class_init):
* plugins/elements/gstfdsrc.c: (gst_fd_src_base_init),
(gst_fd_src_class_init):
* plugins/elements/gstfilesink.c: (gst_file_sink_base_init),
(gst_file_sink_class_init):
* plugins/elements/gstfilesrc.c: (gst_file_src_base_init),
(gst_file_src_class_init):
* plugins/elements/gstidentity.c: (gst_identity_base_init),
(gst_identity_class_init):
* plugins/elements/gstmultiqueue.c: (gst_multi_queue_base_init),
(gst_multi_queue_class_init):
* plugins/elements/gstqueue.c: (gst_queue_base_init),
(gst_queue_class_init):
* plugins/elements/gsttee.c: (gst_tee_base_init),
(gst_tee_class_init):
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_base_init),
(gst_type_find_element_class_init):
Don't use base_init where not absolutely necessary. For example it's
not necessary anymore for adding pad templates or setting element
details.
Leave empty base_init functions in several places as GST_BOILERPLATE
still defines and uses them.
2008-02-03 12:04:37 +00:00
Jan Schmidt
04757dd2d3 Fix minor compilation warnings shown with Forte.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_continue_func):
* libs/gst/base/gstbasesrc.c: (gst_base_src_do_sync):
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_add_pad_full):
* plugins/elements/gstmultiqueue.c: (gst_multi_queue_loop):
Fix minor compilation warnings shown with Forte.
2007-09-17 17:17:29 +00:00
Wim Taymans
c0d4e1a104 libs/gst/base/gstcollectpads.c: Use additional refcounting to avoid crashes when dynamically adding and removing pads...
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_finalize),
(unref_data), (gst_collect_pads_remove_pad),
(gst_collect_pads_check_pads):
Use additional refcounting to avoid crashes when dynamically adding and
removing pads. Fixes #420206.
2007-05-25 09:26:20 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
Andy Wingo
55ff7942ee libs/gst/base/gstcollectpads.c (gst_collect_pads_chain): Only update last_stop if we're in TIME format and the timest...
Original commit message from CVS:
2006-02-07  Andy Wingo  <wingo@pobox.com>

* libs/gst/base/gstcollectpads.c (gst_collect_pads_chain): Only
update last_stop if we're in TIME format and the timestamp is
valid.

* libs/gst/base/gstcollectpads.c (gst_collect_pads_event)
* libs/gst/base/gstbasetransform.c (gst_base_transform_eventfunc):
* libs/gst/base/gstbasesink.c (gst_base_sink_configure_segment):
If we get a new newsegment with a different format, adapt
accordingly.

* gst/gstclock.c (gst_clock_set_calibration): Accept a numerator
of 0. Not a problem, really.
2006-02-07 15:49:40 +00:00
Julien Moutte
14de34d6ec libs/gst/base/gstcollectpads.c: Collectpads now holds a reference to the GstPad that was added. Indeed we don't want ...
Original commit message from CVS:
2006-02-05  Julien MOUTTE  <julien@moutte.net>

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

* libs/gst/base/gstcollectpads.c: (gst_collect_pads_add_pad),
(gst_collect_pads_start), (gst_collect_pads_stop),
(gst_collect_pads_event), (gst_collect_pads_chain):
* libs/gst/base/gstcollectpads.h: Handle flush. Adapted from
Mark Nauwelaerts's patch on bug #328491.
2006-02-05 16:18:37 +00:00
Jan Schmidt
1dad4aea3a libs/gst/base/gstcollectpads.c: Don't loop infinitely if there are no buffers to present. Partially fixes #327197, bu...
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_is_collected):
Don't loop infinitely if there are no buffers to present. Partially
fixes #327197, but collectpads is just broken for reusing elements
to do multiple encodes atm.
2006-01-20 09:26:00 +00:00
Jan Schmidt
4159740e17 libs/gst/base/gstcollectpads.c: Need to awaken ALL the pads when we pop a buffer, otherwise collectpads only works wh...
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_pop):
Need to awaken ALL the pads when we pop a buffer, otherwise
collectpads only works when there is 2 input streams.
2006-01-11 21:32:21 +00:00
Julien Moutte
ed8fcd46b2 libs/gst/base/gstcollectpads.c: Refactoring of collectpads. This version removes a lot of races without touching API/...
Original commit message from CVS:
2005-12-14  Julien MOUTTE  <julien@moutte.net>

* libs/gst/base/gstcollectpads.c: (gst_collect_pads_base_init),
(gst_collect_pads_remove_pad), (gst_collect_pads_is_collected),
(gst_collect_pads_event), (gst_collect_pads_chain): Refactoring
of collectpads. This version removes a lot of races without
touching API/ABI. Yay !
2005-12-14 17:08:36 +00:00
Tim-Philipp Müller
93f79f0c96 libs/gst/base/gstcollectpads.c: Change debug category to 'collectpads' from 'collect_pads' (fixes #323250).
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_base_init):
Change debug category to 'collectpads' from 'collect_pads'
(fixes #323250).
2005-12-05 09:45:29 +00:00
Andy Wingo
19858fd9f0 gst/gstevent.h (gst_event_new_new_segment) (gst_event_parse_new_segment, gst_event_new_buffer_size)
Original commit message from CVS:
2005-11-22  Andy Wingo  <wingo@pobox.com>

* gst/gstevent.h (gst_event_new_new_segment)
(gst_event_parse_new_segment, gst_event_new_buffer_size)
(gst_event_parse_buffer_size, gst_ghost_pad_new_no_target):
Renamed from *_newsegment, *_buffersize, *_notarget.

* scripts/update-funcnames: New script, performs the changes
listed above.
2005-11-22 11:48:58 +00:00
Wim Taymans
a35882df1f More segment updates, replace code in plugins with segment helper functions.
Original commit message from CVS:
* check/gst/gstsegment.c: (GST_START_TEST):
* docs/design/part-TODO.txt:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_event), (gst_base_sink_do_sync),
(gst_base_sink_activate_pull), (gst_base_sink_get_position),
(gst_base_sink_query), (gst_base_sink_change_state):
* gst/base/gstbasesink.h:
* gst/base/gstbasesrc.c: (gst_base_src_init), (gst_base_src_query),
(gst_base_src_default_newsegment),
(gst_base_src_configure_segment), (gst_base_src_do_seek),
(gst_base_src_get_range), (gst_base_src_loop),
(gst_base_src_change_state):
* gst/base/gstbasesrc.h:
* gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buf),
(gst_base_transform_event), (gst_base_transform_change_state):
* gst/base/gstbasetransform.h:
* gst/base/gstcollectpads.c: (gst_collect_pads_add_pad),
(gst_collect_pads_event):
* gst/base/gstcollectpads.h:
* gst/elements/gstfakesrc.c: (gst_fake_src_init),
(gst_fake_src_create):
* gst/elements/gstfakesrc.h:
* gst/elements/gstidentity.c: (gst_identity_transform_ip):
* gst/gstsegment.c: (gst_segment_init), (gst_segment_set_duration),
(gst_segment_set_last_stop), (gst_segment_set_seek),
(gst_segment_set_newsegment), (gst_segment_to_stream_time),
(gst_segment_to_running_time), (gst_segment_clip):
* gst/gstsegment.h:
More segment updates, replace code in plugins with segment
helper functions.
2005-11-21 17:09:45 +00:00
Andy Wingo
44c548b205 *.*: Ran scripts/update-macros. Oh yes. gst/gstobject.h (GST_OBJECT_GET_LOCK, GST_OBJECT_LOCK)
Original commit message from CVS:
2005-11-21  Andy Wingo  <wingo@pobox.com>

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

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

* scripts/update-macros: New script. Run it on your files to
change GST_LOCK to GST_OBJECT_LOCK, and the same for UNLOCK as
well.
2005-11-21 16:34:26 +00:00
Tim-Philipp Müller
60c50e8f11 Rename gst_collecpads_foo() => gst_collect_pads_foo(). Document unimplemented functions as unimplemented (#320766).
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* win32/common/libgstbase.def:
* win32/libgstbase.def:
* gst/base/gstcollectpads.c: (gst_collect_pads_base_init),
(gst_collect_pads_class_init), (gst_collect_pads_init),
(gst_collect_pads_finalize), (gst_collect_pads_new),
(gst_collect_pads_set_function), (gst_collect_pads_add_pad),
(gst_collect_pads_remove_pad), (gst_collect_pads_is_active),
(gst_collect_pads_collect), (gst_collect_pads_collect_range),
(gst_collect_pads_start), (gst_collect_pads_stop),
(gst_collect_pads_peek), (gst_collect_pads_pop),
(gst_collect_pads_available), (gst_collect_pads_read),
(gst_collect_pads_flush), (gst_collect_pads_event),
(gst_collect_pads_chain):
* gst/base/gstcollectpads.h:
Rename gst_collecpads_foo() => gst_collect_pads_foo(). Document
unimplemented functions as unimplemented (#320766).
2005-11-21 11:00:03 +00:00
Wim Taymans
b2ff4bd747 docs/gst/gstreamer-sections.txt: Added some docs for GstCollectData.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
Added some docs for GstCollectData.

* gst/base/gstadapter.c:
Some small code example fix.

* gst/base/gstcollectpads.c:
* gst/base/gstcollectpads.h:
Document some more.
2005-11-11 20:12:42 +00:00
Tim-Philipp Müller
fc387bfd46 gst/: Use GST_DEBUG_FUNCPTR() more extensively.
Original commit message from CVS:
* gst/base/gstcollectpads.c: (gst_collectpads_add_pad):
* gst/elements/gstfilesink.c: (gst_file_sink_init):
* gst/elements/gsttypefindelement.c: (gst_type_find_element_init):
* gst/gstghostpad.c: (gst_ghost_pad_set_internal),
(gst_ghost_pad_init), (gst_ghost_pad_new_notarget):
* gst/gstpad.c: (gst_pad_init):
Use GST_DEBUG_FUNCPTR() more extensively.
2005-11-09 17:55:13 +00:00
Tim-Philipp Müller
9fa579c299 gst/base/gstadapter.c: Debug category should be 'adapter', not 'GstAdapter'.
Original commit message from CVS:
* gst/base/gstadapter.c:
Debug category should be 'adapter', not 'GstAdapter'.
* gst/base/gstcollectpads.c: (gst_collectpads_base_init),
(gst_collectpads_class_init), (gst_collectpads_init),
(gst_collectpads_peek), (gst_collectpads_pop),
(gst_collectpads_event), (gst_collectpads_chain):
Add debug category and some debugging output. Use boilerplate
macros. Remove some extraneous words from docs.
2005-11-07 10:13:47 +00:00
Tim-Philipp Müller
3e5676f6a8 gst/base/gstcollectpads.c: Guard public API with assertions.
Original commit message from CVS:
* gst/base/gstcollectpads.c: (gst_collectpads_set_function),
(gst_collectpads_add_pad), (gst_collectpads_remove_pad),
(gst_collectpads_is_active), (gst_collectpads_collect),
(gst_collectpads_collect_range), (gst_collectpads_start),
(gst_collectpads_stop), (gst_collectpads_peek),
(gst_collectpads_pop), (gst_collectpads_available),
(gst_collectpads_read), (gst_collectpads_flush):
Guard public API with assertions.
* gst/gstpad.c:
Fix docs for gst_pad_set_link_function().
2005-11-02 15:08:05 +00:00
Tim-Philipp Müller
327501d2bd gst/base/gstcollectpads.c: Don't try to ref NULL.
Original commit message from CVS:
* gst/base/gstcollectpads.c: (gst_collectpads_peek):
Don't try to ref NULL.
2005-11-02 12:20:54 +00:00
Andy Wingo
839de99850 gst/base/gstcollectpads.c (gst_collectpads_chain): Slight cleanup.
Original commit message from CVS:
2005-10-17  Andy Wingo  <wingo@pobox.com>

* gst/base/gstcollectpads.c (gst_collectpads_chain): Slight
cleanup.

* gst/Makefile.am (gstenumtypes.c): Threadsafe now.

* gst/gstevent.c (gst_event_new, gst_event_finalize): LOG.

* gst/gstelement.c (gst_element_get_state_func): s/INFO/DEBUG/.
(gst_element_get_state_func): Better debug message.
(gst_element_commit_state): s/INFO/DEBUG/.
(gst_element_lost_state, gst_element_change_state):

* gst/gstmessage.c (gst_message_init): s/INFO/LOG/.
(gst_message_new_custom): s/INFO/LOG/.
2005-10-17 18:09:32 +00:00
Thomas Vander Stichele
2dd1598c56 whitespace fixes
Original commit message from CVS:
whitespace fixes
2005-10-15 15:30:24 +00:00
Tim-Philipp Müller
26eb6ab26d gst/base/gstcollectpads.c: Fix presumable copy'n'pasto.
Original commit message from CVS:
* gst/base/gstcollectpads.c: (gst_collectpads_event):
Fix presumable copy'n'pasto.
2005-10-13 18:33:27 +00:00
Julien Moutte
04f521f191 gst/base/gstcollectpads.*: Handle newsegment and store informations in CollectData.
Original commit message from CVS:
2005-10-13  Julien MOUTTE  <julien@moutte.net>

* gst/base/gstcollectpads.c: (gst_collectpads_event),
(gst_collectpads_chain):
* gst/base/gstcollectpads.h: Handle newsegment and store
informations
in CollectData.
2005-10-13 14:55:17 +00:00
Julien Moutte
5706cb69b4 gst/base/gstcollectpads.*: Handle EOS correctly.
Original commit message from CVS:
2005-10-11  Julien MOUTTE  <julien@moutte.net>

* gst/base/gstcollectpads.c: (gst_collectpads_init),
(gst_collectpads_add_pad), (gst_collectpads_pop),
(gst_collectpads_event), (gst_collectpads_chain):
* gst/base/gstcollectpads.h: Handle EOS correctly.
2005-10-11 16:25:35 +00:00
Stefan Kost
da7dd48860 added long/short desc for controller docs added collectpads base class docs added correct includes to base-class docs
Original commit message from CVS:
added long/short desc for controller docs
added collectpads base class docs
added correct includes to base-class docs
2005-08-05 12:59:46 +00:00
Jan Schmidt
75c955843e gst/base/gstcollectpads.c: Broadcast the condition when shutting down, to make sure we wake all threads up. Shut down...
Original commit message from CVS:
* gst/base/gstcollectpads.c: (gst_collectpads_finalize),
(gst_collectpads_stop):
Broadcast the condition when shutting down, to make sure we wake all
threads up. Shut down pads on finalize, for safety.
2005-08-01 21:17:01 +00:00
Wim Taymans
113250d274 gst/: Added object to help in making collect pad based elements.
Original commit message from CVS:
* gst/base/Makefile.am:
* gst/base/gstbasesink.h:
* gst/base/gstbasesrc.c: (gst_basesrc_init),
(gst_basesrc_set_dataflow_funcs), (gst_basesrc_query):
* gst/base/gstcollectpads.c: (gst_collectpads_get_type),
(gst_collectpads_class_init), (gst_collectpads_init),
(gst_collectpads_finalize), (gst_collectpads_new),
(gst_collectpads_set_function), (gst_collectpads_add_pad),
(find_pad), (gst_collectpads_remove_pad),
(gst_collectpads_is_active), (gst_collectpads_collect),
(gst_collectpads_collect_range), (gst_collectpads_start),
(gst_collectpads_stop), (gst_collectpads_peek),
(gst_collectpads_pop), (gst_collectpads_available),
(gst_collectpads_read), (gst_collectpads_flush),
(gst_collectpads_chain):
* gst/base/gstcollectpads.h:
* gst/elements/Makefile.am:
* gst/elements/gstelements.c:
* gst/elements/gstfakesink.c: (gst_fakesink_class_init),
(gst_fakesink_get_times), (gst_fakesink_event),
(gst_fakesink_preroll), (gst_fakesink_render):
* gst/elements/gstfilesink.c: (gst_filesink_class_init),
(gst_filesink_init), (gst_filesink_set_location),
(gst_filesink_open_file), (gst_filesink_close_file),
(gst_filesink_pad_query), (gst_filesink_event),
(gst_filesink_render), (gst_filesink_change_state):
* gst/elements/gstfilesink.h:
Added object to help in making collect pad based elements.
Ported filesink.
Make event function in sink baseclass return gboolean.
2005-05-05 09:31:59 +00:00