Original commit message from CVS:
* gst/gstpad.c: (gst_pad_acceptcaps_default),
(gst_pad_configure_src), (gst_pad_alloc_buffer_full):
Remove silly redundant debug.
Add some more debug info.
Clarify the docs regarding new caps received from pad_alloc.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_alloc_buffer_full):
Only sanity-check the buffer size if requested_caps == buffer_caps
(ie. don't take pad caps into account, they're not relevant here)
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_event_default_dispatch):
The default event function on a sinkpad should return TRUE when
there are no internal links but should collect the return values from
the internal links otherwise.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_alloc_buffer_full):
Move size sanity check to the right place: downstream may return
a buffer with a smaller size if the buffer caps are different than
the requested ones, as may happen when doing reverse negotiation.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_buffer_alloc_unchecked):
Add sanity check to make sure we don't get smaller buffers
than requested (and fallback to normal buffer alloc if we do).
Original commit message from CVS:
* gst/gstconfig.h.in:
Add 'id' for example.
* gst/gstpad.c:
* gst/gstutils.c:
* plugins/elements/gstfdsink.c:
Link to signals. Doc and comment fixes.
Original commit message from CVS:
* gst/gstpad.c:
* tests/check/gst/gstpad.c:
Be sure that we have a new copy of the caps and not
reffed caps from a template
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_dispose):
Really unlink the peer pad instead of setting the peer pointer to NULL
when we dispose the pad.
This correctly calls the unlink functions and makes sure that the peer
does not have a handle to invalid memory. See #504671.
* tests/check/gst/gstpad.c: (GST_START_TEST), (gst_pad_suite):
Add testsuite for above case.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstpad.c: (gst_pad_peer_query):
* gst/gstpad.h:
Add function to perform a query on the peer of a pad.
API: gst_pad_peer_query()
Original commit message from CVS:
* docs/design/part-TODO.txt:
Add some more TODO items
* gst/gstbin.c: (find_message), (gst_bin_change_state_func):
Improve debugging.
* gst/gstcaps.c: (gst_caps_intersect):
Optimize trivial intersection case between identical caps pointers.
* gst/gstelement.c: (gst_element_continue_state),
(gst_element_set_state_func):
* gst/gstpad.c:
Fix spelling and grammar mistakes.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_alloc_buffer_full), (gst_pad_push):
Show the caps change in the log to help spotting the case of not
exactly matching caps.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_get_caps_unlocked),
(gst_pad_acceptcaps_default), (gst_pad_configure_sink),
(gst_pad_configure_src):
Added simple version of improved caps checking. It was previously
assumed that a setcaps function would check the validity of the caps but
people prefer us to check caps against the template automatically.
Fixes#421543.
Original commit message from CVS:
* docs/faq/gst-uninstalled:
don't get empty paths on the PATH variables
* gst/gstpad.c (gst_pad_is_active, gst_pad_set_blocked_async):
Don't format for the uncommon terminal width of 84 characters.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_caps), (gst_pad_configure_sink),
(gst_pad_configure_src), (gst_pad_alloc_buffer_full),
(gst_pad_chain_unchecked), (gst_pad_push):
Revert last commit. This needs some more thoughts.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_caps), (gst_pad_alloc_buffer_full),
(gst_pad_chain_unchecked), (gst_pad_push):
Check in set_caps if the caps are compatible with the pad and remove
two functions that are redundant now. Fixes#421543.
Original commit message from CVS:
Patch by: <syrjala at sci dot fi>
* gst/gstpad.c: (gst_pad_alloc_buffer_full), (gst_pad_send_event):
Fix possible deadlock if pad eventfunc is not specified. Fixes#421177.
Improve debugging.
Original commit message from CVS:
* docs/design/draft-tagreading.txt:
* docs/random/ensonic/audiobaseclasses.txt:
Do some Architect work.
* gst/gstobject.c: (gst_object_set_name):
Add a WARNING.
* gst/gstpad.c:
Add docs that point from gst_pad_get_range to gst_pad_pull_range
Original commit message from CVS:
* docs/design/part-gstghostpad.txt:
* gst/gstghostpad.c: (gst_ghost_pad_dispose),
(gst_ghost_pad_new_full):
Make the ghostpad a parent of the internal pad again for better backward
compatibility. Don't write code that relies on this however.
* gst/gstpad.c: (gst_pad_activate_pull), (gst_pad_activate_push),
(gst_pad_link_check_hierarchy):
Require that parents should be GstElements in the hierarchy check.
Original commit message from CVS:
* docs/design/part-gstghostpad.txt:
* gst/gstghostpad.c: (gst_ghost_pad_class_init),
(gst_ghost_pad_internal_do_activate_push),
(gst_ghost_pad_internal_do_activate_pull),
(gst_ghost_pad_do_activate_push), (gst_ghost_pad_do_activate_pull),
(gst_ghost_pad_do_link), (gst_ghost_pad_dispose),
(gst_ghost_pad_new_full), (gst_ghost_pad_set_target):
Do not set the internal pad as a parent anymore so we can avoid
hierarchy linking errors when the ghostpad has no parent yet. This also
fixes failed activation because of unlinked internal pads, which in
turn fixes the impossible case where you have to activate a pad before
you can add it to a running element.
Also fix the docs.
* gst/gstpad.c: (pre_activate), (post_activate),
(gst_pad_set_active), (gst_pad_activate_pull),
(gst_pad_activate_push), (gst_pad_check_pull_range):
Add some more debug info.
Mark activation mode in pre_activate so that we don't try to activate in
endless loops. Fixes#385084.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_get_internal_links_default),
(gst_pad_dispatcher):
Improve debugging of default pad dispatcher and query functions.
Original commit message from CVS:
2007-01-13 Andy Wingo <wingo@pobox.com>
* gst/gstpad.c (gst_pad_get_range, gst_pad_pull_range): Allow
getrange() to return buffers with other caps, while we fix
demuxers and typefind, or otherwise change part-negotiation.txt.
Original commit message from CVS:
2007-01-12 Andy Wingo <wingo@pobox.com>
* gst/gstpad.c (gst_pad_activate_pull): Refuse to activate unlinked
sink pads in pull mode. In addition to being correct, fixes
filesrc ! decodebin ! identity ! fakesink.
(gst_pad_get_range, gst_pad_pull_range): Don't call
gst_pad_set_caps() if the caps changes; instead error out with
GST_FLOW_NOT_NEGOTIATED, as discussed in part-negotiation.txt.
Original commit message from CVS:
2007-01-10 Andy Wingo <wingo@pobox.com>
* docs/design/part-negotiation.txt: Update with, um, one way that
pull-mode negotiation might work?
* gst/gstpad.h:
* gst/gstpad.c (gst_pad_get_allowed_caps): Remove the restriction
that the pad must be a src pad; makes sense to call it the other
way in pull mode, and the logic is symmetric anyway.
Original commit message from CVS:
2007-01-06 Andy Wingo <wingo@pobox.com>
* gst/gstpad.c (gst_pad_get_range, gst_pad_pull_range): Set caps
on the pads if necessary, as in push()/chain(). Update docs.
Shouldn't affect existing pull() usage as it is currently only
being used on buffers without caps.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_add_pad):
* gst/gstghostpad.c: (gst_ghost_pad_new_full):
* gst/gstpad.c: (gst_pad_init):
Set pads to FLUSHING when they are created. Check, warn and fix when a
demuxer adds an inactive pad to itself when running. Fixes#339326.
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet dot be>
* gst/gstpad.c:
Fix documentation for gst_pad_dispatcher. Fixes#374475.
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet dot be>
* gst/gstpad.c: (gst_pad_init), (pre_activate),
(gst_pad_set_blocked_async), (gst_pad_acceptcaps_default),
(gst_pad_accept_caps), (handle_pad_block), (gst_pad_push_event):
Some small cleanups. Improve debugging.
* gst/gstpad.h:
Signal all waiting threads with a broadcast instead of just one.
Fixes#369942.
Original commit message from CVS:
* docs/design/part-events.txt:
Update some docs.
* docs/design/part-block.txt:
* gst/gstpad.c: (gst_pad_is_blocking), (handle_pad_block),
(gst_pad_push_event):
Revert BLOCKING patch, it tries to be smart without really having a
clear idea what or how. So, now we discard all FLUSHING events again on
a blocking pad. Should fix gnonlin again.
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.
Original commit message from CVS:
Patch by: Sebastien Cote <sebas642 at yahoo dot ca>
* gst/gstpad.c: (gst_pad_get_caps_unlocked),
(gst_pad_save_thyself):
Update some docs.
Write pad direction in XML output. Fixes#345496.
Original commit message from CVS:
* docs/design/part-block.txt:
Further explain the use of flushing on blocked pads.
* docs/gst/gstreamer-sections.txt:
* gst/gstpad.c: (gst_pad_is_blocking), (handle_pad_block),
(gst_pad_push_event):
* gst/gstpad.h:
Added new GstPadFlag : GST_PAD_BLOCKING.
Adds the notion of pads really blocking, which enables to properly
handle FLUSH_START/FLUSH_STOP events on blocked pads.
Fixes#358999
API: gst_pad_is_blocking()
API: GST_PAD_IS_BLOCKING() macro
API: GST_PAD_BLOCKING GstPadFlag