Skip to content
  • Edward Hervey's avatar
    gst/gstbin.c: (de)activate src pads before calling state_change on the childs. · 4f9d5adb
    Edward Hervey authored
    Original commit message from CVS:
    * gst/gstbin.c: (activate_pads),
    (iterator_activate_fold_with_resync), (gst_bin_src_pads_activate),
    (gst_bin_change_state_func):
    (de)activate src pads before calling state_change on the childs.
    This is to avoid the case where a src ghostpad is blocked (holding the
    stream lock), which would block the deactivation of the ghostpad's
    target pad.
    * gst/gstghostpad.c: (gst_proxy_pad_do_query_type),
    (gst_proxy_pad_do_event), (gst_proxy_pad_do_query),
    (gst_proxy_pad_do_internal_link), (gst_proxy_pad_do_bufferalloc),
    (gst_proxy_pad_do_chain), (gst_proxy_pad_do_getrange),
    (gst_proxy_pad_do_checkgetrange), (gst_proxy_pad_do_getcaps),
    (gst_proxy_pad_do_acceptcaps), (gst_proxy_pad_do_fixatecaps),
    (gst_proxy_pad_do_setcaps), (gst_proxy_pad_set_target_unlocked),
    (gst_proxy_pad_set_target), (gst_proxy_pad_get_internal),
    (gst_proxy_pad_dispose), (gst_proxy_pad_init),
    (gst_ghost_pad_parent_set), (gst_ghost_pad_parent_unset),
    (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_do_unlink),
    (gst_ghost_pad_dispose), (gst_ghost_pad_new_no_target),
    (gst_ghost_pad_new), (gst_ghost_pad_set_target):
    GhostPads now create their internal GstProxyPad at creation (and not
    when they're linked, as it was being done previously).
    The internal and target pads are linked straight away.
    The data will also travel through the other pad in order to make
    pad blocking and probes non-hackish (the probe/block now really happens
    on the GhostPad and not on the target).
    * gst/gstpad.c: (gst_pad_set_blocked_async),
    (gst_pad_link_prepare), (gst_pad_push_event):
    Remove previous ghostpad cruft.
    * gst/gstutils.c: (gst_pad_add_data_probe),
    (gst_pad_add_event_probe), (gst_pad_add_buffer_probe),
    (gst_pad_remove_data_probe), (gst_pad_remove_event_probe),
    (gst_pad_remove_buffer_probe):
    Remove previous ghost pad cruft.
    Added more detailed debug statements.
    * tests/check/gst/gstghostpad.c: (GST_START_TEST):
    Fix the testsuite for refcounting changes.
    The comments about who has references were correct, but the refcount
    being checked wasn't the same (!?!).
    4f9d5adb
To find the state of this project's repository at the time of any of these versions, check out the tags.