1. 15 Dec, 2006 1 commit
    • Wim Taymans's avatar
      gst/: Set pads to FLUSHING when they are created. Check, warn and fix when a... · 1affbe8e
      Wim Taymans authored
      gst/: Set pads to FLUSHING when they are created. Check, warn and fix when a demuxer adds an inactive pad to itself w...
      
      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.
      1affbe8e
  2. 13 Dec, 2006 1 commit
  3. 27 Oct, 2006 1 commit
  4. 02 Oct, 2006 1 commit
    • mrcgran's avatar
      gst/gstghostpad.c: Filter the proxied caps against the padtemplate if we have one. · bae90f59
      mrcgran authored
      Original commit message from CVS:
      Patch by: mrcgran <mrc.gran at gmail dot com>
      * gst/gstghostpad.c: (gst_proxy_pad_do_getcaps):
      Filter the proxied caps against the padtemplate if we have one.
      * gst/gstquery.c: (gst_query_new_segment):
      Add include for gstinfo.h so that compilation with
      -DGST_DISABLE_GST_DEBUG works again. Fixes #358436.
      bae90f59
  5. 22 Sep, 2006 1 commit
  6. 18 Sep, 2006 1 commit
  7. 01 Sep, 2006 1 commit
    • Wim Taymans's avatar
      gst/gstghostpad.c: More cleanups. · 1b623c32
      Wim Taymans authored
      Original commit message from CVS:
      * gst/gstghostpad.c: (gst_proxy_pad_do_event),
      (gst_proxy_pad_do_bufferalloc), (gst_proxy_pad_do_chain),
      (gst_proxy_pad_do_getrange), (gst_proxy_pad_do_checkgetrange),
      (gst_proxy_pad_set_target_unlocked), (gst_ghost_pad_parent_set),
      (gst_ghost_pad_parent_unset),
      (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_init), (gst_ghost_pad_dispose),
      (gst_ghost_pad_new_full), (gst_ghost_pad_new_no_target),
      (gst_ghost_pad_new), (gst_ghost_pad_new_from_template),
      (gst_ghost_pad_new_no_target_from_template),
      (gst_ghost_pad_get_target), (gst_ghost_pad_set_target):
      More cleanups.
      Avoid needless typechecking in macros.
      Since the internal pad is always present and never changes, there is
      no need to locking or ref when retrieving it.
      Improve debugging a bit.
      Handle link errors when setting the target. Fixes #341029.
      1b623c32
  8. 31 Aug, 2006 2 commits
    • Wim Taymans's avatar
      docs/design/part-gstghostpad.txt: Update ascii art in documentation. · 47e5ba2f
      Wim Taymans authored
      Original commit message from CVS:
      * docs/design/part-gstghostpad.txt:
      Update ascii art in documentation.
      * gst/gstghostpad.c: (gst_proxy_pad_do_internal_link),
      (gst_proxy_pad_set_target_unlocked), (gst_proxy_pad_init),
      (gst_ghost_pad_parent_set), (gst_ghost_pad_parent_unset),
      (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_full),
      (gst_ghost_pad_set_target):
      Small cleanups and leak fixes.
      Remove some checks now that the internal pad is never NULL.
      Fix the case where linking pads without a target would create nasty
      criticals. Fixes #341029.
      Don't assign a GstPadLinkReturn to a gboolean and mess up the return
      value of _set_target().
      * tests/check/gst/gstghostpad.c: (GST_START_TEST),
      (gst_ghost_pad_suite):
      Some more tests for creating and linking untargeted ghostpads.
      47e5ba2f
    • Edward Hervey's avatar
      Refactored *_new() functions. · ce6e126d
      Edward Hervey authored
      Original commit message from CVS:
      * docs/gst/gstreamer-sections.txt:
      * gst/gstghostpad.c: (gst_proxy_pad_do_getcaps),
      (gst_proxy_pad_do_setcaps), (gst_proxy_pad_set_target_unlocked),
      (gst_proxy_pad_dispose), (gst_ghost_pad_new_full),
      (gst_ghost_pad_new_no_target), (gst_ghost_pad_new),
      (gst_ghost_pad_new_from_template),
      (gst_ghost_pad_new_no_target_from_template):
      * gst/gstghostpad.h:
      Refactored *_new() functions.
      Templates are now used as a g_object_new() parameter.
      Use template in _do_getcaps() if we don't have a target.
      Small documentation cleanups.
      Added two new constructors:
      gst_ghost_pad_new_from_template()
      gst_ghost_pad_new_no_target_from_template()
      * tests/check/gst/gstghostpad.c: (GST_START_TEST),
      (gst_ghost_pad_suite):
      Added tests for new ghostpad instanciation functions.
      API additions: gst_ghost_pad_new_from_template,
      gst_ghost_pad_new_no_target_from_template
      ce6e126d
  9. 08 Aug, 2006 1 commit
    • Edward Hervey's avatar
      gst/gstghostpad.c: Unlinking from a pad without a target is now a perfectly... · 2d6d262e
      Edward Hervey authored
      gst/gstghostpad.c: Unlinking from a pad without a target is now a perfectly valid case which should NOT raise an asse...
      
      Original commit message from CVS:
      * gst/gstghostpad.c: (gst_ghost_pad_do_unlink):
      Unlinking from a pad without a target is now a perfectly valid case
      which should NOT raise an assertion.
      This case would happen if a linked ghostpad its target set to NULL after
      it was previously linked.
      2d6d262e
  10. 13 Jul, 2006 1 commit
  11. 11 Jul, 2006 1 commit
    • 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
  12. 05 May, 2006 1 commit
  13. 06 Apr, 2006 1 commit
    • Michael Smith's avatar
      gst/gstpad.c: Use g_value_get_object() instead of g_value_dup_gst_object(), to... · 6c40c759
      Michael Smith authored
      gst/gstpad.c: Use g_value_get_object() instead of g_value_dup_gst_object(), to avoid double-reffing the pad template ...
      
      Original commit message from CVS:
      * gst/gstpad.c: (gst_pad_set_property):
      Use g_value_get_object() instead of g_value_dup_gst_object(),
      to avoid double-reffing the pad template (which we then sink,
      so this worked previously if (and only if) the pad template
      was floating.
      
      * gst/gstpadtemplate.c: (gst_pad_template_init),
      (gst_pad_template_pad_created):
      Never return floating references to pad templates, create
      them as initially-sunken.
      
      Document an extra function (and make this stop sinking our
      pad template, since that is now guaranteed to do nothing,
      since we created it sunken).
      
      * gst/gstghostpad.c:
      Fix docs typo.
      6c40c759
  14. 21 Mar, 2006 1 commit
    • Edward Hervey's avatar
      Series of fixes for dereferenced pointers that gcc 4.1 complains about. · ac377b0c
      Edward Hervey authored
      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().
      ac377b0c
  15. 29 Jan, 2006 1 commit
  16. 06 Dec, 2005 1 commit
  17. 29 Nov, 2005 1 commit
  18. 22 Nov, 2005 1 commit
  19. 21 Nov, 2005 1 commit
  20. 18 Nov, 2005 1 commit
    • Stefan Kost's avatar
      gst/: docs fixes · dff771f1
      Stefan Kost authored
      Original commit message from CVS:
      * gst/gstcaps.c:
      * gst/gstghostpad.c:
      * gst/gsttrace.c:
      * gst/gstvalue.c:
      * gst/gstvalue.h:
      docs fixes
      dff771f1
  21. 14 Nov, 2005 1 commit
    • Stefan Kost's avatar
      more section docs · 1d176e04
      Stefan Kost authored
      Original commit message from CVS:
      * docs/gst/gstreamer-sections.txt:
      * gst/gsterror.c:
      * gst/gstghostpad.c:
      * gst/gstobject.h:
      * gst/gstxml.c:
      more section docs
      1d176e04
  22. 10 Nov, 2005 1 commit
    • Wim Taymans's avatar
      check/gst/gstghostpad.c: Added check for bug #317341 · 8bf3884c
      Wim Taymans authored
      Original commit message from CVS:
      * check/gst/gstghostpad.c: (GST_START_TEST), (gst_ghost_pad_suite):
      Added check for bug #317341
      
      * gst/gstbuffer.c:
      * gst/gstbuffer.h:
      Some more spiffifying.
      
      * gst/gstghostpad.c: (gst_ghost_pad_do_link):
      Call peer linkfunction if we are a source pad. Totally fixes
      #317341
      
      * gst/gstpad.c:
      Update docs, source pads should call the peer linkfunction
      so they can atomically perform the pad link.
      8bf3884c
  23. 09 Nov, 2005 1 commit
    • Tim-Philipp Müller's avatar
      gst/: Use GST_DEBUG_FUNCPTR() more extensively. · fc387bfd
      Tim-Philipp Müller authored
      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.
      fc387bfd
  24. 15 Oct, 2005 2 commits
  25. 07 Oct, 2005 1 commit
  26. 06 Oct, 2005 1 commit
  27. 02 Oct, 2005 1 commit
  28. 26 Sep, 2005 1 commit
    • Wim Taymans's avatar
      gst/gstbin.c: Make state change function use 3 queues again, we were adding... · e32e0a17
      Wim Taymans authored
      gst/gstbin.c: Make state change function use 3 queues again, we were adding elements in the wrong order.
      
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_change_state):
      Make state change function use 3 queues again, we were
      adding elements in the wrong order.
      
      * gst/gstghostpad.c: (gst_ghost_pad_do_unlink):
      Some debug info,
      
      * gst/gstpad.c: (gst_pad_dispose):
      Added some debug info first.
      e32e0a17
  29. 02 Sep, 2005 1 commit
    • Stefan Kost's avatar
      more docs inlined · c253951d
      Stefan Kost authored
      Original commit message from CVS:
      * docs/gst/gstreamer-docs.sgml:
      * docs/gst/tmpl/.cvsignore:
      * docs/gst/tmpl/gstghostpad.sgml:
      * docs/gst/tmpl/gstiterator.sgml:
      * docs/gst/tmpl/gstmacros.sgml:
      * docs/gst/tmpl/gstrealpad.sgml:
      * docs/gst/tmpl/gstregistry.sgml:
      * docs/gst/tmpl/gstregistrypool.sgml:
      * docs/gst/tmpl/gststructure.sgml:
      * docs/gst/tmpl/gstsystemclock.sgml:
      * docs/gst/tmpl/gsttrace.sgml:
      * gst/gstghostpad.c:
      * gst/gstmacros.h:
      * gst/gstmemchunk.c:
      * gst/gstmemchunk.h:
      * gst/gstqueue.c:
      * gst/gstregistry.c:
      * gst/gstregistrypool.c:
      * gst/gststructure.c:
      * gst/gstsystemclock.c:
      more docs inlined
      c253951d
  30. 11 Aug, 2005 1 commit
    • Wim Taymans's avatar
      gst/gstghostpad.c: Actually implement (re)setting the target on a ghostpad as... · 8513b476
      Wim Taymans authored
      gst/gstghostpad.c: Actually implement (re)setting the target on a ghostpad as described in the docs.
      
      Original commit message from CVS:
      * gst/gstghostpad.c: (gst_proxy_pad_set_target_unlocked),
      (gst_proxy_pad_set_target), (gst_proxy_pad_get_target),
      (gst_proxy_pad_dispose), (gst_ghost_pad_do_activate_push),
      (gst_ghost_pad_do_link), (gst_ghost_pad_set_internal),
      (gst_ghost_pad_new_notarget), (gst_ghost_pad_get_target),
      (gst_ghost_pad_set_target):
      Actually implement (re)setting the target on a ghostpad
      as described in the docs.
      8513b476
  31. 29 Jul, 2005 1 commit
    • Wim Taymans's avatar
      check/gst/gstghostpad.c: Added test for removing an element with ghostpad from a bin. · afbe7340
      Wim Taymans authored
      Original commit message from CVS:
      * check/gst/gstghostpad.c: (GST_START_TEST), (gst_ghost_pad_suite):
      Added test for removing an element with ghostpad from a bin.
      Fixed test as current implementation does the right thing.
      
      * gst/gstghostpad.c: (gst_proxy_pad_class_init),
      (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_activate),
      (gst_proxy_pad_do_activatepull), (gst_proxy_pad_do_activatepush),
      (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),
      (gst_proxy_pad_get_target), (gst_proxy_pad_init),
      (gst_proxy_pad_dispose), (gst_proxy_pad_finalize),
      (gst_ghost_pad_class_init), (gst_ghost_pad_do_activate_push),
      (gst_ghost_pad_do_link), (gst_ghost_pad_do_unlink),
      (gst_ghost_pad_set_internal), (gst_ghost_pad_dispose),
      (gst_ghost_pad_new_notarget), (gst_ghost_pad_new),
      (gst_ghost_pad_get_target), (gst_ghost_pad_set_target):
      * gst/gstghostpad.h:
      Clean up ghostpads, remove properties for internal stuff.
      Make threadsafe.
      Fix refcounting.
      Prepare for switching targets, not all use cases work yet.
      afbe7340
  32. 18 Jul, 2005 1 commit
    • Wim Taymans's avatar
      Removed plugable schedulers. · e1aeec6d
      Wim Taymans authored
      Original commit message from CVS:
      Removed plugable schedulers.
      Removed Scheduler/Manager from elements.
      Removed gsttypes.h, rearranged includes.
      Removed dependency pad<->element, element<>pipeline, and
      various others,  fix includes.
      implement gst_pad_get_parent() with gst_object_get_parent()
      Make GstTask sefcontained.
      Fix _get_state() on GstBin, it did not return ASYNC with a 0
      timeout.
      Fix endless loop in iterator_fold_with_resync.
      e1aeec6d
  33. 16 Jul, 2005 1 commit
    • Wim Taymans's avatar
      check/gst/gstbin.c: Make elements silent as the deep_notify refs the parent,... · f89689b7
      Wim Taymans authored
      check/gst/gstbin.c: Make elements silent as the deep_notify refs the parent, which might make the test fail.
      
      Original commit message from CVS:
      * check/gst/gstbin.c: (GST_START_TEST):
      Make elements silent as the deep_notify refs the
      parent, which might make the test fail.
      
      * gst/gstghostpad.c: (gst_ghost_pad_do_activate_push):
      Don't hold the lock for too long.
      f89689b7
  34. 14 Jul, 2005 1 commit
    • Wim Taymans's avatar
      gst/gstcaps.c: Remove debug info. · 9ace7467
      Wim Taymans authored
      Original commit message from CVS:
      * gst/gstcaps.c: (gst_caps_do_simplify):
      Remove debug info.
      
      * gst/gsterror.h:
      Define error for stream stopped.
      
      * gst/gstghostpad.c: (gst_proxy_pad_do_bufferalloc),
      (gst_proxy_pad_do_chain), (gst_proxy_pad_do_getrange):
      Do proper return values.
      
      * gst/gstpad.c: (gst_pad_get_caps_unlocked), (gst_pad_accept_caps),
      (gst_pad_set_caps), (gst_pad_chain), (gst_pad_push),
      (gst_pad_get_range):
      Better return values.
      
      * gst/gstpad.h:
      Reorganise return values, add macro to check for fatal errors.
      
      * gst/gstqueue.c: (gst_queue_chain):
      Return proper GstFlowReturn values,
      9ace7467
  35. 01 Jul, 2005 1 commit
    • Andy Wingo Wingo's avatar
      tests/network-clock.scm: Commentary update. · c1d34b8a
      Andy Wingo Wingo authored
      Original commit message from CVS:
      2005-07-01  Andy Wingo  <wingo@pobox.com>
      
      * tests/network-clock.scm: Commentary update.
      
      * gst/elements/gstidentity.c (PROP_DUPLICATE): Gone daddy gone.
      Didn't really make sense, not implementable with basetransform,
      etc.
      (gst_identity_transform): Unref inbuf via make_writable. Feeble
      attempt at implementing the sync property, needs an unlock method.
      
      * gst/base/gstbasetransform.c (gst_base_transform_transform_caps):
      New func, by default returns the same caps (the identity
      transformation).
      (gst_base_transform_getcaps): Uses transform_caps to return
      something sensible.
      (gst_base_transform_setcaps): Complicated logic to get caps on
      both pads, even if they are different, and to call set_caps once
      for every time both pads get their caps set.
      (gst_base_transform_handle_buffer): Give the ref to the transform
      function. Allows in-place modification of the buffer.
      
      * gst/base/gstbasetransform.h (transform_caps): New class method.
      Given caps on one side, what can I do on the other.
      (set_caps): Take two caps, one for each side of the element.
      
      * gst/gstpad.h:
      * gst/gstpad.c (gst_pad_fixate_caps): Change prototype to modify
      caps in place. This is safe because we can check the mutability of
      the caps, and a good idea because fixate functions are just called
      as a matter of last resort. (Not actually implemented.)
      (gst_pad_set_caps): If the caps we're setting is actually the same
      as the existing pad caps, just update the pointer without calling
      setcaps. Assert that caps is either NULL or fixed, as per the
      docs.
      
      * gst/gstghostpad.c: Update for fixate changes.
      c1d34b8a
  36. 30 Jun, 2005 1 commit
  37. 28 Jun, 2005 2 commits
    • Wim Taymans's avatar
      gst/gstghostpad.c: Correctly proxy the check_pull_range function. · d0616cd4
      Wim Taymans authored
      Original commit message from CVS:
      * gst/gstghostpad.c: (gst_proxy_pad_do_bufferalloc),
      (gst_proxy_pad_do_checkgetrange), (gst_proxy_pad_do_acceptcaps),
      (gst_proxy_pad_do_fixatecaps):
      Correctly proxy the check_pull_range function.
      d0616cd4
    • Wim Taymans's avatar
      gst/: The deprecated pad loop function is removed now. · de3be844
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstbasesink.c: (gst_basesink_set_pad_functions),
      (gst_basesink_preroll_queue_flush):
      * gst/base/gstbasesrc.c: (gst_basesrc_set_dataflow_funcs):
      * gst/elements/gsttee.c: (gst_tee_update_pad_functions):
      * gst/gstghostpad.c: (gst_proxy_pad_do_bufferalloc),
      (gst_proxy_pad_do_acceptcaps), (gst_proxy_pad_do_fixatecaps),
      (gst_proxy_pad_set_property):
      * gst/gstpad.c:
      * gst/gstpad.h:
      * gst/gstqueue.c: (gst_queue_init):
      The deprecated pad loop function is removed now.
      de3be844