1. 24 Apr, 2009 1 commit
  2. 09 Apr, 2009 1 commit
    • Wim Taymans's avatar
      bin: always mark pending_async_done · 1b4b1a5b
      Wim Taymans authored
      When we get an ASYNC_DONE message when a state change was busy, set the
      pending_async_done flag so that after the state change completes, the bin can
      check if all async elements are finished. Don't only do this for the bin itself
      but for all elements.
      
      This fixes some bins in bins that simulate async state changes by posting ASYNC
      messages (such as sdpparse in uridecodebin/playbin2).
      1b4b1a5b
  3. 08 Apr, 2009 1 commit
  4. 04 Apr, 2009 1 commit
  5. 03 Apr, 2009 1 commit
  6. 17 Mar, 2009 1 commit
    • Stefan Kost's avatar
      bin: forward segment-start like segment-done if parent is also a bin, fixes #575598. · b3e56e19
      Stefan Kost authored
      Bin collects segment-start messages and segent-done messages. it posts a
      segment-done message to its parent, once it has received a segment-done for
      each segment-start. Imho it should also send a segment-start if it receives the
      first segment start and if parent is !=NULL. This is needed for bins in bins,
      so that also higher order bins can group segment-starts and segment-dones.
      Right now higher order bins will post a segment-done for each segment-done
      received.
      b3e56e19
  7. 05 Jan, 2009 1 commit
    • Wim Taymans's avatar
      gst/gstbin.c: Use an iterator to set the clock and the index so that we can... · 23bdf5c9
      Wim Taymans authored
      gst/gstbin.c: Use an iterator to set the clock and the index so that we can release the object lock appropriately. Fi...
      
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_set_index_func), (gst_bin_set_clock_func),
      (gst_bin_change_state_func):
      Use an iterator to set the clock and the index so that we can release
      the object lock appropriately. Fixes #566393.
      23bdf5c9
  8. 19 Nov, 2008 1 commit
    • Wim Taymans's avatar
      gst/gstbin.*: Add do-latency signal with the old default fallback... · 9184d9ee
      Wim Taymans authored
      gst/gstbin.*: Add do-latency signal with the old default fallback implementation. This allows for custom latency calc...
      
      Original commit message from CVS:
      * gst/gstbin.c: (_gst_boolean_accumulator), (gst_bin_class_init),
      (gst_bin_recalculate_latency), (gst_bin_do_latency_func),
      (gst_bin_change_state_func):
      * gst/gstbin.h:
      Add do-latency signal with the old default fallback implementation. This
      allows for custom latency calculations for when the default is not
      sufficient.
      API: GstBin::do-latency signal.
      9184d9ee
  9. 18 Nov, 2008 1 commit
    • Wim Taymans's avatar
      Add method to recalculate and redistribute the latency on a bin. · c311f215
      Wim Taymans authored
      Original commit message from CVS:
      * docs/gst/gstreamer-sections.txt:
      * gst/gstbin.c: (gst_bin_recalculate_latency),
      (gst_bin_change_state_func):
      * gst/gstbin.h:
      Add method to recalculate and redistribute the latency on a bin.
      API: gst_bin_recalculate_latency().
      c311f215
  10. 04 Nov, 2008 2 commits
  11. 10 Oct, 2008 1 commit
    • Wim Taymans's avatar
      gst/gstbin.c: The message src can be NULL, don't try to print the object names in that case. · bc8e3678
      Wim Taymans authored
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_remove_func), (update_degree),
      (gst_bin_handle_message_func):
      The message src can be NULL, don't try to print the object names in that
      case.
      * libs/gst/base/gstbasesink.c: (gst_base_sink_pad_activate):
      Add some more debug info.
      * tests/check/pipelines/simple-launch-lines.c: (run_pipeline),
      (GST_START_TEST):
      Add some debug.
      Fix the test, pull based sinks go ASYNC to PAUSED, just like other
      scheduling modes.
      bc8e3678
  12. 06 Oct, 2008 1 commit
    • Olivier Crete's avatar
      gst/gstbin.c: Keep track of pads that are being linked/unlinked and resync the state changes. · ee0eaf82
      Olivier Crete authored and Wim Taymans's avatar Wim Taymans committed
      Original commit message from CVS:
      Base on Patch by: Olivier Crete <tester at tester dot ca>
      * gst/gstbin.c: (gst_bin_init), (gst_bin_add_func),
      (gst_bin_remove_func), (update_degree),
      (gst_bin_sort_iterator_new), (gst_bin_handle_message_func):
      Keep track of pads that are being linked/unlinked and resync the state
      changes.
      * gst/gstpad.c: (gst_pad_get_direction),
      (gst_pad_set_chain_function), (gst_pad_set_getrange_function),
      (gst_pad_set_checkgetrange_function), (gst_pad_unlink),
      (gst_pad_link_prepare), (gst_pad_link),
      (gst_pad_event_default_dispatch), (gst_pad_chain), (gst_pad_push),
      (gst_pad_check_pull_range), (gst_pad_get_range),
      (gst_pad_pull_range):
      Some code cleanups, use macros to check pad direction.
      Don't need to take the lock on the pad direction.
      Post structure change when pads are linked/unlinked.
      Change some checks into _return_if_fail().
      * tests/check/gst/gstbin.c:
      (test_link_structure_change_state_changed_sync_cb),
      (GST_START_TEST), (gst_bin_suite):
      Add testcase for pad link/unlinke resync during a state change.
      Fixes #510354.
      ee0eaf82
  13. 25 Aug, 2008 2 commits
    • Wim Taymans's avatar
      gst/gstbin.c: Take the (recursive) state lock between getting the locked state... · f716d86e
      Wim Taymans authored
      gst/gstbin.c: Take the (recursive) state lock between getting the locked state of an element and changing the element...
      
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_element_set_state):
      Take the (recursive) state lock between getting the locked state of an
      element and changing the element state. This allows the application to
      lock an element's state and then change its state without races.
      f716d86e
    • Wim Taymans's avatar
      gst/gstbin.c: When an element is in the locked state we still want to update... · a6b1fecc
      Wim Taymans authored
      gst/gstbin.c: When an element is in the locked state we still want to update the base_time of the element.
      
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_element_set_state):
      When an element is in the locked state we still want to update the
      base_time of the element.
      a6b1fecc
  14. 04 Aug, 2008 1 commit
    • Wim Taymans's avatar
      gst/gstbin.c: Fix race for bins that simulate ASYNC state changes by inserting · 56656805
      Wim Taymans authored
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_add_func), (gst_bin_remove_func),
      (gst_bin_change_state_func), (bin_handle_async_done),
      (gst_bin_handle_message_func):
      Fix race for bins that simulate ASYNC state changes by inserting
      ASYNC_START and ASYNC_DONE messages in their bus. We need to check for
      pending ASYNC messages even when the bin does not have ASYNC children.
      We note detect this behaviour because we will receive an ASYNC message
      that is originating from the bin itself.
      Fixes races with decodebin2 state changes.
      * tests/check/gst/gstbin.c: (GST_START_TEST):
      Add some more debug.
      56656805
  15. 31 Jul, 2008 1 commit
    • Sebastian Dröge's avatar
      Remove GST_DISABLE_(ENUMTYPES|INDEX|URI) everywhere. · 4bfb1fe7
      Sebastian Dröge authored
      Original commit message from CVS:
      * configure.ac:
      * docs/gst/gstreamer-sections.txt:
      * docs/gst/gstreamer.types:
      * docs/gst/gstreamer.types.in:
      * gst/Makefile.am:
      * gst/gst.c:
      * gst/gstbin.c: (gst_bin_class_init), (gst_bin_set_index_func):
      * gst/gstconfig.h.in:
      * gst/gstelement.c: (gst_element_get_index):
      * gst/gstregistrybinary.c: (gst_registry_binary_save_feature),
      (gst_registry_binary_load_feature),
      (gst_registry_binary_read_cache):
      * gst/gstregistryxml.c: (load_feature),
      (gst_registry_xml_read_cache), (gst_registry_xml_save_feature):
      * plugins/Makefile.am:
      * tools/gst-indent:
      * tools/gst-inspect.c: (print_index_info), (print_element_list),
      (print_plugin_features), (print_element_features):
      * tools/gst-xmlinspect.c: (print_event_masks),
      (print_element_info):
      * win32/common/gstconfig.h:
      Remove GST_DISABLE_(ENUMTYPES|INDEX|URI) everywhere.
      Disabling the indexers and URI handler code will only reduce the
      required amount of memory by a very small amount but on the other hand
      requires much more maintaince work. Apart from that many places of
      code are broken when disabling them.
      Disabling the enum types doesn't reduce the required amount of memory
      by more than a few bytes and makes it hard to fix bugs like #539772,
      i.e. use the enums as GObject properties.
      4bfb1fe7
  16. 25 Jun, 2008 1 commit
  17. 25 Apr, 2008 1 commit
    • Antoine Tremblay's avatar
      gst/gstbin.c: Use the GLib stuff to create a private structure. · d102d887
      Antoine Tremblay authored and Wim Taymans's avatar Wim Taymans committed
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_class_init), (gst_bin_init),
      (gst_bin_dispose):
      Use the GLib stuff to create a private structure.
      Add some locking around some dispose methods to make them a little
      safer, see #529723. Patch by: Antoine Tremblay <hexa00 at gmail dot com>
      d102d887
  18. 23 Apr, 2008 1 commit
    • Stefan Kost's avatar
      docs/gst/gstreamer-sections.txt: Move GParamSepc macros to standart section. · 012d5584
      Stefan Kost authored
      Original commit message from CVS:
      * docs/gst/gstreamer-sections.txt:
      Move GParamSepc macros to standart section.
      * gst/gstbin.c:
      Dn't document _get_type - its in private section in docs anyway and
      this doc-blob was incomplete.
      * gst/gstclock.h:
      Fix wrong symbol names in docs.
      * gst/gstmacros.h:
      Add once doc sentence.
      * tests/check/gst/.cvsignore:
      Ignore more.
      012d5584
  19. 22 Mar, 2008 1 commit
    • Sebastian Dröge's avatar
      Define G_PARAM_STATIC_STRINGS if it's undefined (GLib < 2.13.0) and use it... · b0346dff
      Sebastian Dröge authored
      Define G_PARAM_STATIC_STRINGS if it's undefined (GLib < 2.13.0) and use it everywhere for GParamSpecs that use static...
      
      Original commit message from CVS:
      * docs/pwg/advanced-dparams.xml:
      * docs/pwg/building-props.xml:
      * docs/pwg/other-source.xml:
      * gst/glib-compat.h:
      * gst/gstbin.c: (gst_bin_class_init):
      * gst/gstclock.c: (gst_clock_class_init):
      * gst/gstindex.c: (gst_index_class_init):
      * gst/gstobject.c: (gst_object_class_init):
      * gst/gstpad.c: (gst_pad_class_init):
      * gst/gstpipeline.c: (gst_pipeline_class_init):
      * libs/gst/base/gstbasesink.c: (gst_base_sink_class_init):
      * libs/gst/base/gstbasesrc.c: (gst_base_src_class_init):
      * libs/gst/base/gstbasetransform.c:
      (gst_base_transform_class_init):
      * libs/gst/base/gstdataqueue.c: (gst_data_queue_class_init):
      * libs/gst/check/gstcheck.c: (_gst_check_fault_handler_restore),
      (_gst_check_fault_handler_sighandler),
      (_gst_check_fault_handler_setup), (gst_check_init):
      * libs/gst/controller/gstcontroller.c:
      (_gst_controller_class_init):
      * libs/gst/controller/gstlfocontrolsource.c:
      (gst_lfo_control_source_class_init):
      * libs/gst/net/gstnetclientclock.c:
      (gst_net_client_clock_class_init):
      * libs/gst/net/gstnettimeprovider.c:
      (gst_net_time_provider_class_init):
      * plugins/elements/gstcapsfilter.c: (gst_capsfilter_class_init):
      * plugins/elements/gstfakesink.c: (gst_fake_sink_class_init):
      * plugins/elements/gstfakesrc.c: (gst_fake_src_class_init):
      * plugins/elements/gstfdsink.c: (gst_fd_sink_class_init):
      * plugins/elements/gstfdsrc.c: (gst_fd_src_class_init):
      * plugins/elements/gstfilesink.c: (gst_file_sink_class_init):
      * plugins/elements/gstfilesrc.c: (gst_file_src_class_init):
      * plugins/elements/gstidentity.c: (gst_identity_class_init):
      * plugins/elements/gstmultiqueue.c: (gst_multi_queue_class_init):
      * plugins/elements/gstqueue.c: (gst_queue_class_init):
      * plugins/elements/gsttee.c: (gst_tee_class_init):
      * plugins/elements/gsttypefindelement.c:
      (gst_type_find_element_class_init):
      * plugins/indexers/gstfileindex.c: (gst_file_index_class_init):
      Define G_PARAM_STATIC_STRINGS if it's undefined (GLib < 2.13.0) and
      use it everywhere for GParamSpecs that use static strings (i.e. all).
      This gives us less memory usage, fewer allocations and thus less
      memory defragmentation. Fixes bug #523806.
      b0346dff
  20. 05 Feb, 2008 1 commit
    • Sebastian Dröge's avatar
      Revert previous changes to the behaviour of GstPadTemplates, etc and the... · 2faa7332
      Sebastian Dröge authored
      Revert previous changes to the behaviour of GstPadTemplates, etc and the possiblity to call them in class_init as it ...
      
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_get_type), (gst_bin_base_init),
      (gst_bin_class_init):
      * gst/gstelement.c: (gst_element_base_class_init),
      (gst_element_class_add_pad_template):
      * gst/gstpadtemplate.c: (gst_pad_template_init):
      * gst/gstpipeline.c: (gst_pipeline_get_type),
      (gst_pipeline_base_init), (gst_pipeline_class_init):
      * libs/gst/base/gstbasesink.c:
      * libs/gst/base/gstbasesrc.c: (gst_base_src_get_type),
      (gst_base_src_base_init), (gst_base_src_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):
      * tests/check/gst/gstelement.c: (gst_element_suite):
      Revert previous changes to the behaviour of GstPadTemplates, etc
      and the possiblity to call them in class_init as it breaks too
      many elements. Reopens bug #491501.
      Should be applied again for 0.11, thus added a few FIXME 0.11 at
      several places.
      2faa7332
  21. 03 Feb, 2008 1 commit
    • Sebastian Dröge's avatar
      Don't use base_init where not absolutely necessary. For example it's not... · 9db28f85
      Sebastian Dröge authored
      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.
      9db28f85
  22. 22 Nov, 2007 1 commit
    • Stefan Kost's avatar
      docs/random/ensonic/profiling.txt: More ideas. · 99897dbf
      Stefan Kost authored
      Original commit message from CVS:
      * docs/random/ensonic/profiling.txt:
      More ideas.
      * gst/gstbin.c:
      Fix typo and give better log output.
      * gst/gstdebugutils.c:
      * gst/gstdebugutils.h:
      More ideas, make graphs a bit smaller and fix param name in macro.
      99897dbf
  23. 19 Nov, 2007 1 commit
    • Wim Taymans's avatar
      gst/gstbin.c: Change email, cleanups add some more debug and comments. · f806905e
      Wim Taymans authored
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_class_init), (gst_bin_init),
      (gst_bin_add_func), (gst_bin_remove_func),
      (gst_bin_change_state_func), (gst_bin_continue_func):
      Change email, cleanups add some more debug and comments.
      Also set bus and clock on new elements when the pipeline was in error.
      f806905e
  24. 18 Nov, 2007 1 commit
  25. 14 Oct, 2007 1 commit
    • Wim Taymans's avatar
      gst/gstbin.c: Correctly set the next state if all of our async children... · 00e832a4
      Wim Taymans authored
      gst/gstbin.c: Correctly set the next state if all of our async children commited their state. This makes sure we can ...
      
      Original commit message from CVS:
      * gst/gstbin.c: (bin_handle_async_done):
      Correctly set the next state if all of our async children commited their
      state. This makes sure we can actually cancel the state change in
      progress. Fixes a regression in Rhythmbox when seeking.
      00e832a4
  26. 13 Oct, 2007 1 commit
  27. 09 Oct, 2007 1 commit
    • Wim Taymans's avatar
      gst/gstbin.c: Work around a problem with pipelines containing (semi)loops... · 9d731d1e
      Wim Taymans authored
      gst/gstbin.c: Work around a problem with pipelines containing (semi)loops until a proper, more complicated solution i...
      
      Original commit message from CVS:
      * gst/gstbin.c: (remove_from_queue):
      Work around a problem with pipelines containing (semi)loops until a
      proper, more complicated solution is ready. See #475455.
      9d731d1e
  28. 17 Sep, 2007 2 commits
    • Wim Taymans's avatar
      gst/gstbin.c: A latency query fails when one of the sinks fail. · d59d3300
      Wim Taymans authored
      Original commit message from CVS:
      * gst/gstbin.c: (bin_query_latency_fold), (gst_bin_query):
      A latency query fails when one of the sinks fail.
      * gst/gstelement.c: (gst_element_set_base_time):
      Improve debugging.
      d59d3300
    • Jan Schmidt's avatar
      Fix minor compilation warnings shown with Forte. · 04757dd2
      Jan Schmidt authored
      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.
      04757dd2
  29. 13 Sep, 2007 1 commit
    • Wim Taymans's avatar
      gst/: Move latency query from GstPipeline to GstBin so that we can also use it... · b155f59d
      Wim Taymans authored
      gst/: Move latency query from GstPipeline to GstBin so that we can also use it when async-handling is enabled on bins.
      
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_class_init), (clear_queue),
      (do_bin_latency), (gst_bin_change_state_func):
      * gst/gstpipeline.c: (gst_pipeline_change_state):
      Move latency query from GstPipeline to GstBin so that we can also
      use it when async-handling is enabled on bins.
      b155f59d
  30. 16 Aug, 2007 2 commits
    • Wim Taymans's avatar
      gst/gstbin.c: Improve debugging. · ebf77015
      Wim Taymans authored
      Original commit message from CVS:
      * gst/gstbin.c: (is_eos), (gst_bin_add_func),
      (bin_handle_async_start), (gst_bin_handle_message_func):
      Improve debugging.
      When adding elements, insert messages into the bus of the newly added
      element and make sure the element is the source of the message. This
      allows the parent bin to intercept the message and do the
      right thing. It also avoids us posting ASYNC_START and CLOCK_PROVIDE
      messages to the app (which is not allowed).
      Update some docs.
      * tests/check/gst/gstghostpad.c: (GST_START_TEST):
      Fix testsuite so that is does not work around messages that should not
      have been posted in the first place.
      ebf77015
    • Wim Taymans's avatar
      gst/gstbin.c: Fix annoying bug in the sorted iterator where a sink that is not... · 5059e9f8
      Wim Taymans authored
      gst/gstbin.c: Fix annoying bug in the sorted iterator where a sink that is not really a sink (when it has downstream ...
      
      Original commit message from CVS:
      * gst/gstbin.c: (add_to_queue), (remove_from_queue), (clear_queue),
      (update_degree), (gst_bin_sort_iterator_next):
      Fix annoying bug in the sorted iterator where a sink that is not really
      a sink (when it has downstream links) screwed up the iterator.
      * tests/check/gst/gstbin.c: (GST_START_TEST), (gst_bin_suite):
      Unit test to verify the fix.
      5059e9f8
  31. 14 Aug, 2007 2 commits
    • Wim Taymans's avatar
      gst/gstbin.c: Move ASYNC_START message posting to where it belongs, similar to async_done. · ef5d931f
      Wim Taymans authored
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_add_func), (gst_bin_element_set_state),
      (bin_handle_async_start), (gst_bin_handle_message_func):
      Move ASYNC_START message posting to where it belongs, similar to
      async_done.
      Don't post ASYNC_START when we are in error.
      Post ASYNC_START when we added an async element to a bin.
      ef5d931f
    • Wim Taymans's avatar
      gst/gstbin.c: Always change the state of a NO_PREROLL element even if it has... · 9b24336c
      Wim Taymans authored
      gst/gstbin.c: Always change the state of a NO_PREROLL element even if it has ASYNC elements inside (in case of a bin).
      
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_element_set_state):
      Always change the state of a NO_PREROLL element even if it has ASYNC
      elements inside (in case of a bin).
      * tests/check/generic/sinks.c: (GST_START_TEST), (gst_sinks_suite):
      Unit test for this case.
      9b24336c
  32. 07 Aug, 2007 1 commit
    • Wim Taymans's avatar
      docs/design/part-TODO.txt: Add some more TODO items · 56b5aa1c
      Wim Taymans authored
      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.
      56b5aa1c
  33. 02 Aug, 2007 1 commit
    • Wim Taymans's avatar
      gst/gstbin.c: Don't forget about the fact that some element went ASYNC even... · d405a6dc
      Wim Taymans authored
      gst/gstbin.c: Don't forget about the fact that some element went ASYNC even after a resync. This makes us post the AS...
      
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_change_state_func),
      (bin_handle_async_done), (gst_bin_handle_message_func):
      Don't forget about the fact that some element went ASYNC even after a
      resync. This makes us post the ASYNC_DONE message correctly.
      Fixes #462558.
      d405a6dc
  34. 18 Jul, 2007 1 commit
    • Jan Schmidt's avatar
      gst/gstbin.c: Check that the state_cookie hasn't changed since the... · 6c0e00bb
      Jan Schmidt authored
      gst/gstbin.c: Check that the state_cookie hasn't changed since the continue_func was scheduled. Avoids problems where...
      
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_continue_func):
      Check that the state_cookie hasn't changed since the continue_func
      was scheduled. Avoids problems where the state changes back to
      something it shouldn't be because it was changed in the meantime.
      6c0e00bb
  35. 19 Jun, 2007 1 commit
    • Wim Taymans's avatar
      gst/gstbin.c: Move the common code for posting state-change messages into one function. · e5990534
      Wim Taymans authored
      Original commit message from CVS:
      * gst/gstbin.c: (gst_bin_add_func), (gst_bin_remove_func),
      (gst_bin_change_state_func), (bin_push_state_continue),
      (bin_handle_async_start), (bin_handle_async_done),
      (gst_bin_handle_message_func):
      Move the common code for posting state-change messages into
      one function.
      Broadcast the state signal after we posted the messages.
      Mark the bin as busy when it's doing a state-change.
      Make sure async-start/done messages don't interfere with the bin's
      state when it's busy.
      After the state change, let the bin check which elements completed the
      state change while it was busy so that it can update its state.
      e5990534