Commit graph

64 commits

Author SHA1 Message Date
Wim Taymans
252327f87a Update for new gthread API 2012-01-19 09:27:04 +01:00
Sebastian Dröge
b56bef1418 basetransform: Always call ::propose_allocation vfunc
And only forward the allocation query if we're working in
passthrough mode if no ::propose_allocation is implemented.
In place buffer transformations will change the buffer
content and require explicit handling of all metas.
2012-01-18 12:07:46 +01:00
Wim Taymans
947276484f docs: fix some more docs 2011-09-28 11:16:33 +02:00
Wim Taymans
d924c30f5b base: rename allocation vmethods
Name the allocation vmethod on srcpad decide_allocation because source pads will
have to decide what allocation parameters will be used.
Name the allocation vmethod on sinkpads propose_allocation because they will
need to configure the allocation query with a proposed values for upstream.
2011-08-26 14:18:33 +02:00
Wim Taymans
5c8efa9ffe basetransform: remove some unused variables 2011-08-26 12:28:28 +02:00
Wim Taymans
b91a5ab60a basetransform: add vmethod to configure upstream bufferpool
Add a vmethod that can be implemented to influence the bufferpool that upstream
elements will use.
2011-08-26 11:44:12 +02:00
Wim Taymans
f1566e85c0 basetransform: use pad direction like other vmethods 2011-08-26 11:24:42 +02:00
Wim Taymans
31b70ea701 Merge branch 'master' into 0.11
Conflicts:
	libs/gst/base/gstbasetransform.c
	libs/gst/base/gstbasetransform.h
2011-08-26 11:09:07 +02:00
Sjoerd Simons
63a21ca8b1 BaseTransform: Add a query vfunc 2011-08-26 10:39:44 +02:00
Wim Taymans
e4db8d0f55 docs: improve some docs 2011-08-17 09:25:04 +02:00
Wim Taymans
2ff17fb622 basetransform: fix sink event handling
Implement the sink event handling like the src event handler. Make the default
implementation parse and forward the event. This makes it possible to actually
return an error value from the event handler.
2011-07-22 21:17:42 +02:00
Wim Taymans
85d2355125 basetrans: Remove ref in passthrough
Remove the requirement to have to return a ref to the input buffer when in
passthrough mode. This saves a few ref/unref cycles and fixes another 0.11
FIXME.
2011-07-21 17:42:08 +02:00
Wim Taymans
70d13ae70e basetransform: make new copy_metadata vmethod
Make a new copy_metadata vmethod and move the code to copy the timestamps, flags
and offsets into a default implementation. This will allow us to give the
subclasses a chance to override the copy method.
2011-07-21 17:29:13 +02:00
Wim Taymans
e4ee356449 basetrans: remove useless variables from prepare_output_buffer
Remove the caps and size from the prepare_output_buffer function. with
bufferpools and capsnego done differently, we don't need this in most cases and
if we do, we can simply use the transform_size function and get the caps from
the srcpad.
2011-07-21 13:56:11 +02:00
Wim Taymans
3822eea7cf basetransform: inprove allocation handling
Add vmethod for subclasses to influence the pool and allocator.
Log when query fails.
Respect negotiated allocator and alignment.
2011-06-20 16:53:04 +02:00
Sebastian Dröge
bdf9022861 base: Improve negotiation with new getcaps() filter 2011-05-16 15:33:10 +02:00
Wim Taymans
bdbc069348 Rework GstSegment handling
Improve GstSegment, rename some fields. The idea is to have the GstSegment
structure represent the timing structure of the buffers as they are generated by
the source or demuxer element.
gst_segment_set_seek() -> gst_segment_do_seek()
Rename the NEWSEGMENT event to SEGMENT.
Make parsing of the SEGMENT event into a GstSegment structure.
Pass a GstSegment structure when making a new SEGMENT event. This allows us to
pass the timing info directly to the next element. No accumulation is needed in
the receiving element, all the info is inside the element.
Remove gst_segment_set_newsegment(): This function as used to accumulate
segments received from upstream, which is now not needed anymore because the
segment event contains the complete timing information.
2011-05-16 11:37:52 +02:00
Wim Taymans
a12ede3fb1 Merge branch 'master' into 0.11-fdo
Conflicts:
	gst/gst.c
	libs/gst/base/gstcollectpads.c
2011-03-28 20:11:20 +02:00
Wim Taymans
d82c8bd2af memory: port code to new buffer data API 2011-03-28 20:08:45 +02:00
Stefan Kost
02eda0e3d9 docs: cleanup and xref fixes
Deal with the hints from gtk-doc and fix the xrefs. Apply a work-around for ()
precedence over @. Move "MT Safe" text to doc body in many places. Trim eol
whitespaces.
2011-03-24 18:32:20 +02:00
Wim Taymans
1218511185 libs: cleanups for 0.11
Remove deprecated stuff, fix padding, rearrange methods.
2011-02-22 19:09:48 +01:00
Tim-Philipp Müller
b0d7c61f18 docs: fix misc. gtk-doc warnings in libs
(for gtk-doc 1.15)
2010-10-16 19:19:47 +01:00
Wim Taymans
76f7a001fc basetransform: add accept_caps vmethod
Allow subclasses to override the acceptcaps function because in some cases a
custom implementation can be much much faster than the default one.

See #621190
2010-06-14 12:45:20 +02:00
Wim Taymans
b90bef8ee5 libs/gst/base/gstbasetransform.*: Add vmethod that is called before we start the transform and which can be used to c...
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buffer),
(gst_base_transform_getrange), (gst_base_transform_chain):
* libs/gst/base/gstbasetransform.h:
Add vmethod that is called before we start the transform and which can
be used to configure the transform, such as dynamic properties.
2008-12-08 18:35:44 +00:00
Wim Taymans
8337ce91aa Implement method for reconfiguring basetransform.
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_handle_buffer), (gst_base_transform_getrange),
(gst_base_transform_chain), (gst_base_transform_suggest),
(gst_base_transform_reconfigure):
* libs/gst/base/gstbasetransform.h:
Implement method for reconfiguring basetransform.
API: GstBaseTransform::gst_base_transform_reconfigure()
2008-08-20 10:52:09 +00:00
Wim Taymans
30f8603645 docs/libs/gstreamer-libs-sections.txt: Add new function:
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
Add new function:
API: GstBaseTransform::gst_base_transform_suggest()
* libs/gst/base/gstbasetransform.c: (gst_base_transform_finalize),
(gst_base_transform_init), (gst_base_transform_transform_caps),
(gst_base_transform_transform_size),
(gst_base_transform_configure_caps),
(gst_base_transform_can_transform),
(gst_base_transform_find_transform), (gst_base_transform_setcaps),
(gst_base_transform_prepare_output_buffer),
(gst_base_transform_buffer_alloc),
(gst_base_transform_handle_buffer), (gst_base_transform_getrange),
(gst_base_transform_chain), (gst_base_transform_activate),
(gst_base_transform_set_passthrough),
(gst_base_transform_is_passthrough),
(gst_base_transform_set_in_place),
(gst_base_transform_is_in_place), (gst_base_transform_update_qos),
(gst_base_transform_set_qos_enabled),
(gst_base_transform_is_qos_enabled),
(gst_base_transform_set_gap_aware), (gst_base_transform_suggest),
(gst_base_transform_reconfigure):
* libs/gst/base/gstbasetransform.h:
Rewrite of basetransform to perform negotiation outside of the
buffer_alloc functions.  Fixes #545853.
* tests/check/libs/transform1.c: (GST_START_TEST),
(buffer_alloc_ct2):
Update unit test.
2008-08-05 11:11:00 +00:00
Stefan Kost
f368d089df libs/gst/base/: Fix doc typos and unify caps a bit.
Original commit message from CVS:
* libs/gst/base/gstbasesink.h:
* libs/gst/base/gstbasesrc.h:
* libs/gst/base/gstbasetransform.h:
* libs/gst/base/gstcollectpads.h:
Fix doc typos and unify caps a bit.
2008-04-25 13:22:32 +00:00
Sebastian Dröge
5f55ba792a API: Add gst_base_transform_set_gap_aware() to control whether the element correctly handles GST_BUFFER_FLAG_GAP or s...
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstbasetransform.c: (gst_base_transform_init),
(gst_base_transform_prepare_output_buffer),
(gst_base_transform_set_gap_aware):
* libs/gst/base/gstbasetransform.h:
API: Add gst_base_transform_set_gap_aware() to control whether
the element correctly handles GST_BUFFER_FLAG_GAP or shouldn't
get buffers with this flag at all. Fixes #503231.
2007-12-14 16:52:38 +00:00
Wim Taymans
58cc3d675b libs/gst/base/gstbasetransform.c: Work around the brokenness of the event vmethod in basetransform. Prefer to return ...
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_sink_event):
Work around the brokenness of the event vmethod in basetransform. Prefer
to return TRUE when the subclass returned FALSE (meaning don't forward
the event).
* libs/gst/base/gstbasetransform.h:
Clarify the docs.
2007-06-15 10:48:19 +00:00
Wim Taymans
caa1b7d068 libs/gst/base/gstbasetransform.h: Fix macro for locking/unlocking the transform lock.
Original commit message from CVS:
* libs/gst/base/gstbasetransform.h:
Fix macro for locking/unlocking the transform lock.
2007-05-21 11:29:28 +00:00
Stefan Kost
63a26ed519 docs/random/ensonic/dynlink.txt: More work on proposal for new core api.
Original commit message from CVS:
* docs/random/ensonic/dynlink.txt:
More work on proposal for new core api.
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstbasetransform.h:
API: GST_BASE_TRANSFORM_LOCK/UNLOCK added
* libs/gst/controller/gstcontroller.c:
(on_object_controlled_property_changed),
(gst_controller_sync_values),
(gst_controller_set_interpolation_mode):
* libs/gst/controller/gstcontroller.h:
Less verbose logging add docs for unimplemented parts and correctly
return when using unavailable parts.
2007-04-02 14:48:12 +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
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
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
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
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
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
Wim Taymans
588e11ad39 libs/gst/: Documentation updates.
Original commit message from CVS:
* libs/gst/base/gstadapter.c:
* libs/gst/base/gstadapter.h:
* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_get_position):
* libs/gst/base/gstbasesink.h:
* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
(gst_base_src_default_query), (gst_base_src_default_do_seek),
(gst_base_src_do_seek), (gst_base_src_perform_seek),
(gst_base_src_send_event), (gst_base_src_update_length),
(gst_base_src_get_range), (gst_base_src_loop),
(gst_base_src_start):
* libs/gst/base/gstbasesrc.h:
* libs/gst/base/gstbasetransform.h:
* libs/gst/base/gstcollectpads.h:
* libs/gst/base/gstpushsrc.c:
* libs/gst/base/gstpushsrc.h:
* libs/gst/dataprotocol/dataprotocol.c:
* libs/gst/dataprotocol/dataprotocol.h:
* libs/gst/net/gstnetclientclock.h:
* libs/gst/net/gstnettimeprovider.h:
Documentation updates.
2005-12-18 16:04:41 +00:00
Andy Wingo
a08a8d8fea libs/gst/base/: en-LARGE the padding.
Original commit message from CVS:
2005-11-29  Andy Wingo  <wingo@pobox.com>

* libs/gst/base/gstbasetransform.h:
* libs/gst/base/gstbasesrc.h:
* libs/gst/base/gstbasesink.h: en-LARGE the padding.

* gst/gstconfig.h.in (GST_PADDING_LARGE): New define, the number
of pointers by which to pad very extensible base classes (like the
ones in libs/gst/base).
2005-11-29 19:37:49 +00:00
Wim Taymans
a9f7f7b7b6 Doc fixes.
Original commit message from CVS:
Doc fixes.
2005-11-24 09:44:07 +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
c557e030a9 gst/gstclock.h (GstClock): Add rate and offset properties, preserving ABI stability. Add rate/offset accessors. Will ...
Original commit message from CVS:
2005-11-17  Andy Wingo  <wingo@pobox.com>

* gst/gstclock.h (GstClock): Add rate and offset properties,
preserving ABI stability. Add rate/offset accessors. Will file bug
for the freeze break.

* gst/gstclock.c (gst_clock_adjust_unlocked): Implement using rate
and offset, trying to keep precision and avoiding
underflow/overflow.
(gst_clock_set_rate_offset, gst_clock_get_rate_offset): New
functions. Make gst_clock_set_time_adjust obsolete.
(gst_clock_set_time_adjust): Note that this function is obsolete.
Will file bug soon.

* gst/base/gstbasetransform.h: Make the ABI-stability hack
greppable by using GST_PADDING-1+1.
2005-11-17 11:51:49 +00:00
Wim Taymans
eb29555a92 gst/base/gstbasesink.c: 0 segment values are 0 in any format.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
0 segment values are 0 in any format.

* gst/base/gstbasetransform.c: (gst_base_transform_event):
* gst/base/gstbasetransform.h:
Parse newsegment correctly in basetransform

* gst/elements/gstidentity.c: (gst_identity_transform_ip):
Sync to clock using updated segment values.
2005-11-15 16:47:07 +00:00
Wim Taymans
f2e8f7198f gst/base/gstbasesink.c: Some more debugging.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_do_sync), (gst_base_sink_get_position):
Some more debugging.

* gst/base/gstbasetransform.c: (gst_base_transform_finalize),
(gst_base_transform_init), (gst_base_transform_buffer_alloc),
(gst_base_transform_event), (gst_base_transform_getrange),
(gst_base_transform_chain):
* gst/base/gstbasetransform.h:
Fix debugging,
Protect transform and concurrent buffer alloc with a new lock.
Try not to break ABI/API.
2005-10-27 20:59:00 +00:00
Stefan Kost
349aa7e2e6 fixing examples fixing docs typos changing log priority in error situations
Original commit message from CVS:
* examples/controller/audio-example.c: (main):
* examples/queue/queue.c: (event_loop):
* gst/base/gstbasetransform.h:
* gst/gstelement.c: (gst_element_send_event):
* gst/gstevent.h:
* gst/gstpad.c: (gst_pad_send_event):
fixing examples
fixing docs typos
changing log priority in error situations
2005-10-26 18:57:43 +00:00
Thomas Vander Stichele
2dd1598c56 whitespace fixes
Original commit message from CVS:
whitespace fixes
2005-10-15 15:30:24 +00:00
Stefan Kost
2a7a17ce2b added more docs
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/base/gstbasetransform.h:
* gst/gstindex.h:
added more docs
2005-09-25 18:34:49 +00:00
Jan Schmidt
1feeaffc7f check/gst-libs/controller.c: Header include fix.
Original commit message from CVS:
* check/gst-libs/controller.c:
Header include fix.
* gst/base/gstbasetransform.c:
(gst_base_transform_default_prepare_buf),
(gst_base_transform_handle_buffer):
* gst/base/gstbasetransform.h:
Some more basetransform changes and fixes to enable sub-classes
that modify buffer metadata only.
* gst/elements/gstcapsfilter.c: (gst_capsfilter_class_init),
(gst_capsfilter_init), (gst_capsfilter_transform_ip),
(gst_capsfilter_prepare_buf):
If the output pad has fixed allowed caps and input buffers
don't have any, set the fixed caps on outgoing buffers.
2005-09-09 23:45:15 +00:00
Jan Schmidt
6ed5bee3b0 check/elements/identity.c: Make the error a little clearer when the test fails because identity made a copy of the bu...
Original commit message from CVS:
* check/elements/identity.c: (GST_START_TEST):
Make the error a little clearer when the test fails because
identity made a copy of the buffer.
* docs/gst/gstreamer-sections.txt:
New symbols in gstbasetransform.h
* gst/base/gstbasetransform.c: (gst_base_transform_class_init),
(gst_base_transform_init), (gst_base_transform_transform_size),
(gst_base_transform_configure_caps), (gst_base_transform_setcaps),
(gst_base_transform_default_prepare_buf),
(gst_base_transform_get_unit_size),
(gst_base_transform_buffer_alloc),
(gst_base_transform_handle_buffer), (gst_base_transform_chain),
(gst_base_transform_change_state),
(gst_base_transform_set_passthrough),
(gst_base_transform_set_in_place),
(gst_base_transform_is_in_place):
* gst/base/gstbasetransform.h:
Change BaseTransform to separate in_place operate from same_caps
output. in_place implies that the element can perform the transform
on incoming buffers in-place, even if the caps on the output are
different.
Sub-class elements can now implement special buffer allocation
methods for outgoing buffers if they wish to.
Big documentation addition.
* gst/elements/gstcapsfilter.c: (gst_capsfilter_transform_ip):
* gst/elements/gstelements.c:
Changes for basetransform modifications.
* gst/elements/Makefile.am:
* gst/elements/gstfdsrc.c: (gst_fdsrc_init), (gst_fdsrc_create):
Compile fix. Extra debug output.
2005-09-09 17:42:20 +00:00