1. 27 Jul, 2005 1 commit
    • Wim Taymans's avatar
      Some docs updates · 66d7070e
      Wim Taymans authored
      Original commit message from CVS:
      * CHANGES-0.9:
      * docs/design/part-TODO.txt:
      * docs/design/part-events.txt:
      Some docs updates
      
      * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
      (gst_base_sink_event), (gst_base_sink_do_sync),
      (gst_base_sink_activate_push), (gst_base_sink_activate_pull):
      * gst/base/gstbasesrc.c: (gst_base_src_send_discont),
      (gst_base_src_do_seek), (gst_base_src_event_handler),
      (gst_base_src_loop):
      * gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
      (gst_base_transform_configure_caps), (gst_base_transform_setcaps),
      (gst_base_transform_get_size), (gst_base_transform_buffer_alloc),
      (gst_base_transform_event), (gst_base_transform_handle_buffer),
      (gst_base_transform_set_passthrough),
      (gst_base_transform_is_passthrough):
      * gst/elements/gstfakesink.c: (gst_fake_sink_event):
      * gst/elements/gstfilesink.c: (gst_file_sink_event):
      Event updates.
      
      * gst/gstbuffer.h:
      Use faster casts.
      
      * gst/gstelement.c: (gst_element_seek):
      * gst/gstelement.h:
      Update gst_element_seek.
      
      * gst/gstevent.c: (gst_event_finalize), (_gst_event_copy),
      (gst_event_new), (gst_event_new_custom), (gst_event_get_structure),
      (gst_event_new_flush_start), (gst_event_new_flush_stop),
      (gst_event_new_eos), (gst_event_new_newsegment),
      (gst_event_parse_newsegment), (gst_event_new_tag),
      (gst_event_parse_tag), (gst_event_new_filler), (gst_event_new_qos),
      (gst_event_parse_qos), (gst_event_new_seek),
      (gst_event_parse_seek), (gst_event_new_navigation):
      * gst/gstevent.h:
      Make GstEvent use GstStructure. Add parsing code, make sure the
      API is sufficiently generic.
      Mark possible directions of events and serialization.
      
      * gst/gstmessage.c: (gst_message_init), (gst_message_finalize),
      (_gst_message_copy), (gst_message_new_segment_start),
      (gst_message_new_segment_done), (gst_message_new_custom),
      (gst_message_parse_segment_start),
      (gst_message_parse_segment_done):
      Small cleanups.
      
      * gst/gstpad.c: (gst_pad_get_caps_unlocked), (gst_pad_accept_caps),
      (gst_pad_set_caps), (gst_pad_send_event):
      Update for new events.
      Catch events sent in wrong directions.
      
      * gst/gstqueue.c: (gst_queue_link_src),
      (gst_queue_handle_sink_event), (gst_queue_chain), (gst_queue_loop),
      (gst_queue_handle_src_query):
      Event updates.
      
      * gst/gsttag.c:
      * gst/gsttag.h:
      Remove event code from this file.
      
      * libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
      (gst_dp_event_from_packet):
      Event updates.
      66d7070e
  2. 22 Jul, 2005 1 commit
    • Wim Taymans's avatar
      docs/design/part-events.txt: Small update. · 9f06376b
      Wim Taymans authored
      Original commit message from CVS:
      * docs/design/part-events.txt:
      Small update.
      
      * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
      (gst_base_sink_do_sync), (gst_base_sink_activate_push),
      (gst_base_sink_activate_pull):
      Some more comments.
      
      * gst/elements/gstfakesrc.c: (gst_fake_src_class_init),
      (gst_fake_src_create):
      Fix handoff marshall.
      
      * gst/elements/gstidentity.c: (gst_identity_class_init),
      (gst_identity_transform_ip):
      We're a real inplace element.
      
      * gst/gstbus.c: (gst_bus_post):
      Added some comments.
      
      * tests/lat.c: (fakesrc), (fakesink), (simple), (queue), (main):
      * tests/muxing/case1.c: (main):
      * tests/sched/dynamic-pipeline.c: (main):
      * tests/sched/interrupt1.c: (main):
      * tests/sched/interrupt2.c: (main):
      * tests/sched/interrupt3.c: (main):
      * tests/sched/runxml.c: (main):
      * tests/sched/sched-stress.c: (main):
      * tests/seeking/seeking1.c: (event_received), (main):
      * tests/threadstate/threadstate2.c: (bus_handler), (timeout_func),
      (main):
      * tests/threadstate/threadstate3.c: (main):
      * tests/threadstate/threadstate4.c: (main):
      * tests/threadstate/threadstate5.c: (main):
      Fix the tests.
      9f06376b
  3. 21 Jul, 2005 1 commit
    • Wim Taymans's avatar
      docs/design/part-seeking.txt: Some small additions. · 030ff93e
      Wim Taymans authored
      Original commit message from CVS:
      * docs/design/part-seeking.txt:
      Some small additions.
      
      * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
      (gst_base_sink_get_times), (gst_base_sink_do_sync),
      (gst_base_sink_activate_push), (gst_base_sink_activate_pull):
      * gst/base/gstbasesink.h:
      discont values are gint64, handle the math correctly.
      
      * gst/base/gstbasesrc.c: (gst_base_src_loop):
      Make the basesrc report error if the source pad is not linked.
      
      * gst/gstqueue.c: (gst_queue_link_src), (gst_queue_chain),
      (gst_queue_loop), (gst_queue_handle_src_query),
      (gst_queue_src_activate_push):
      Make queue collect data even if the srcpad is not linked.
      Start pushing out data as soon as it is linked.
      
      * gst/gstutils.c: (gst_element_unlink), (gst_flow_get_name):
      * gst/gstutils.h:
      Added gst_flow_get_name() to ease error reporting.
      030ff93e
  4. 17 Jul, 2005 1 commit
    • Wim Taymans's avatar
      gst/base/gstbasesink.c: Refcounting fixes. · 56453e01
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstbasesink.c: (gst_base_sink_pad_getcaps),
      (gst_base_sink_pad_setcaps), (gst_base_sink_pad_buffer_alloc),
      (gst_base_sink_preroll_queue_flush), (gst_base_sink_handle_object),
      (gst_base_sink_event), (gst_base_sink_do_sync),
      (gst_base_sink_chain), (gst_base_sink_loop),
      (gst_base_sink_deactivate), (gst_base_sink_activate_push),
      (gst_base_sink_activate_pull), (gst_base_sink_change_state):
      Refcounting fixes.
      Fix logic for returning ASYNC when not prerolled.
      56453e01
  5. 16 Jul, 2005 2 commits
    • Wim Taymans's avatar
      gst/base/gstbasesink.c: Fix compile error. · 11bc4796
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
      (gst_base_sink_do_sync):
      Fix compile error.
      11bc4796
    • Wim Taymans's avatar
      gst/base/gstbasesink.*: Store and use discont values when syncing buffers as... · d5be929b
      Wim Taymans authored
      gst/base/gstbasesink.*: Store and use discont values when syncing buffers as described in design docs.
      
      Original commit message from CVS:
      * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
      (gst_base_sink_event), (gst_base_sink_get_times),
      (gst_base_sink_do_sync), (gst_base_sink_change_state):
      * gst/base/gstbasesink.h:
      Store and use discont values when syncing buffers as described
      in design docs.
      
      * gst/base/gstbasesrc.c: (gst_base_src_send_discont),
      (gst_base_src_do_seek), (gst_base_src_loop), (gst_base_src_start),
      (gst_base_src_activate_push):
      Push discont event when starting.
      
      * gst/elements/gstidentity.c: (gst_identity_transform):
      Small cleanups.
      
      * gst/gstbin.c: (gst_bin_change_state):
      Small cleanups in base_time  distribution.
      
      * gst/gstelement.c: (gst_element_set_base_time),
      (gst_element_get_base_time), (gst_element_change_state):
      * gst/gstelement.h:
      Added methods for the base_time of the element.
      Some MT fixes.
      
      * gst/gstpipeline.c: (gst_pipeline_send_event),
      (gst_pipeline_change_state), (gst_pipeline_set_new_stream_time),
      (gst_pipeline_get_last_stream_time):
      * gst/gstpipeline.h:
      MT fixes.
      Handle seeking as described in design doc, remove stream_time
      hack.
      Cleanups clock and stream_time selection code. Added accessors
      for the stream_time.
      d5be929b
  6. 10 Jul, 2005 1 commit
  7. 06 Jul, 2005 2 commits
    • Jan Schmidt's avatar
      examples/: Update a couple of the examples to work again. · ba5cecf3
      Jan Schmidt authored
      Original commit message from CVS:
      * examples/Makefile.am:
      * examples/helloworld/helloworld.c: (event_loop), (main):
      * examples/queue/queue.c: (event_loop), (main):
      * examples/queue2/queue2.c: (main):
      Update a couple of the examples to work again.
      
      * gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_empty),
      (gst_base_sink_preroll_queue_flush), (gst_base_sink_handle_event):
      Spelling corrections and extra debug.
      
      * gst/gstbin.c: (gst_bin_class_init), (gst_bin_init), (is_eos),
      (gst_bin_add_func), (bin_element_is_sink), (gst_bin_get_state),
      (gst_bin_change_state), (gst_bin_dispose), (bin_bus_handler):
      * gst/gstbin.h:
      * gst/gstpipeline.c: (gst_pipeline_init), (gst_pipeline_dispose),
      (gst_pipeline_change_state):
      * gst/gstpipeline.h:
      Move the bus handler for children to the GstBin, and create a
      separate bus for receiving messages from children to the one the
      bus sends 'upwards' on.
      ba5cecf3
    • Wim Taymans's avatar
      gst/base/: Make basesrc negotiate. · 03aa950f
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/README:
      * gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_empty),
      (gst_base_sink_handle_object), (gst_base_sink_loop),
      (gst_base_sink_change_state):
      * gst/base/gstbasesink.h:
      * gst/base/gstbasesrc.c: (gst_base_src_class_init),
      (gst_base_src_init), (gst_base_src_setcaps),
      (gst_base_src_getcaps), (gst_base_src_loop),
      (gst_base_src_default_negotiate), (gst_base_src_negotiate),
      (gst_base_src_start), (gst_base_src_change_state):
      * gst/base/gstbasesrc.h:
      Make basesrc negotiate.
      Handle the case where preroll fails in basesink.
      Update README.
      03aa950f
  8. 30 Jun, 2005 1 commit
  9. 29 Jun, 2005 2 commits
    • Wim Taymans's avatar
      gst/base/gstbasesink.c: Small debug line. · 06ab4b78
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstbasesink.c: (gst_base_sink_handle_object),
      (gst_base_sink_change_state):
      Small debug line.
      
      * gst/gstclock.h:
      map SIGNAL and BROADCAST to the right function.
      
      * gst/gstobject.h:
      Remove redundant braces.
      
      * gst/gstpad.c: (gst_pad_set_caps):
      Don't call setcaps function when reseting caps to NULL.
      
      * gst/gstsystemclock.c: (gst_system_clock_dispose),
      (gst_system_clock_async_thread), (gst_system_clock_id_wait_async),
      (gst_system_clock_id_unschedule):
      Use BROADCAST as this is what we do.
      06ab4b78
    • Wim Taymans's avatar
      gst/base/gstbasesink.c: We are actually prerolling before commiting the state change. · a34bc0bd
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstbasesink.c: (gst_base_sink_handle_object):
      We are actually prerolling before commiting the state
      change.
      a34bc0bd
  10. 28 Jun, 2005 3 commits
  11. 27 Jun, 2005 1 commit
    • Andy Wingo Wingo's avatar
      gst/base/gsttypefindhelper.c (gst_type_find_helper): Unref any remaining buffer. · f2cf753b
      Andy Wingo Wingo authored
      Original commit message from CVS:
      2005-06-27  Andy Wingo  <wingo@pobox.com>
      
      * gst/base/gsttypefindhelper.c (gst_type_find_helper): Unref any
      remaining buffer.
      
      * gst/gsttrace.c (gst_alloc_trace_list_sorted): New helper,
      returns a sorted copy of the trace list.
      (gst_alloc_trace_print_live): New API, only prints traces with
      live objects. Sort the list.
      (gst_alloc_trace_print_all): Sort the list.
      (gst_alloc_trace_print): Align columns.
      
      * gst/elements/gstttypefindelement.c:
      * gst/elements/gsttee.c:
      * gst/base/gstbasesrc.c:
      * gst/base/gstbasesink.c:
      * gst/base/gstbasetransform.c:
      * gst/gstqueue.c: Adapt for pad activation changes.
      
      * gst/gstpipeline.c (gst_pipeline_init): Unref after parenting
      sched.
      (gst_pipeline_dispose): Drop ref on sched.
      
      * gst/gstpad.c (gst_pad_init): Set the default activate func.
      (gst_pad_activate_default): Push mode by default.
      (pre_activate_switch, post_activate_switch): New stubs, things to
      do before and after switching activation modes on pads.
      (gst_pad_set_active): Take a boolean and not a mode, dispatch to
      the pad's activate function to choose which mode to activate.
      Shortcut on deactivation and call the right function directly.
      (gst_pad_activate_pull): New API, (de)activates a pad in pull
      mode.
      (gst_pad_activate_push): New API, same for push mode.
      (gst_pad_set_activate_function)
      (gst_pad_set_activatepull_function)
      (gst_pad_set_activatepush_function): Setters for new API.
      
      * gst/gstminiobject.c (gst_mini_object_new, gst_mini_object_free):
      Trace all miniobjects.
      (gst_mini_object_make_writable): Unref the arg if we copy, like
      gst_caps_make_writable.
      
      * gst/gstmessage.c (_gst_message_initialize): No trace init.
      
      * gst/gstghostpad.c (gst_proxy_pad_do_activate)
      (gst_proxy_pad_do_activatepull, gst_proxy_pad_do_activatepush):
      Adapt for new pad API.
      
      * gst/gstevent.c (_gst_event_initialize): Don't initialize trace.
      
      * gst/gstelement.h:
      * gst/gstelement.c (gst_element_iterate_src_pads)
      (gst_element_iterate_sink_pads): New API functions.
      
      * gst/gstelement.c (iterator_fold_with_resync): New utility,
      should fold into gstiterator.c in some form.
      (gst_element_pads_activate): Simplified via use of fold and
      delegation of decisions to gstpad->activate.
      
      * gst/gstbus.c (gst_bus_source_finalize): Set the bus to NULL,
      help in debugging.
      
      * gst/gstbuffer.c (_gst_buffer_initialize): Ref the buffer type
      class once in init, like gstmessage. Didn't run into this issue
      but it seems correct. Don't initialize a trace, gstminiobject does
      that.
      
      * check/pipelines/simple_launch_lines.c (test_stop_from_app): New
      test, runs fakesrc ! fakesink, stopping on ::handoff via a message
      to the bus.
      (assert_live_count): New util function, uses alloc traces to check
      cleanup.
      
      * check/gst/gstghostpad.c (test_ghost_pads): More refcount checks.
      To be modified when unlink drops the internal pad.
      f2cf753b
  12. 25 Jun, 2005 3 commits
    • Wim Taymans's avatar
      gst/: Right, two problems here: ghostpads don't take locks and glib... · 97194517
      Wim Taymans authored
      gst/: Right, two problems here: ghostpads don't take locks and glib _rec_mutex_lock_full() with depth==0 still locks.
      
      Original commit message from CVS:
      * gst/base/gstbasesink.c: (gst_basesink_preroll_queue_empty),
      (gst_basesink_handle_object), (gst_basesink_event),
      (gst_basesink_do_sync), (gst_basesink_handle_event),
      (gst_basesink_change_state):
      * gst/gsttask.h:
      Right, two problems here: ghostpads don't take locks and
      glib _rec_mutex_lock_full() with depth==0 still locks.
      Catch illegal locking and g_warn them.
      97194517
    • Wim Taymans's avatar
      gst/: Unlock STREAM_LOCK whatever the recursion was. · 613dc3d6
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstbasesink.c: (gst_basesink_preroll_queue_empty),
      (gst_basesink_handle_object), (gst_basesink_event),
      (gst_basesink_do_sync), (gst_basesink_handle_event),
      (gst_basesink_change_state):
      * gst/gstpad.h:
      Unlock STREAM_LOCK whatever the recursion was.
      613dc3d6
    • Wim Taymans's avatar
      gst/base/gstbasesink.c: Reworked the base sink, handle event and buffer... · 8303454d
      Wim Taymans authored
      gst/base/gstbasesink.c: Reworked the base sink, handle event and buffer serialisation correctly and removed possible ...
      
      Original commit message from CVS:
      * gst/base/gstbasesink.c: (gst_basesink_set_property),
      (gst_basesink_preroll_queue_empty),
      (gst_basesink_preroll_queue_flush), (gst_basesink_handle_object),
      (gst_basesink_event), (gst_basesink_do_sync),
      (gst_basesink_handle_event), (gst_basesink_handle_buffer),
      (gst_basesink_chain), (gst_basesink_loop), (gst_basesink_activate),
      (gst_basesink_change_state):
      Reworked the base sink, handle event and buffer serialisation
      correctly and removed possible deadlock.
      Handle EOS correctly.
      8303454d
  13. 17 Jun, 2005 2 commits
    • Andy Wingo Wingo's avatar
      gst/base/gstbasesink.c (gst_basesink_chain): Remove bogus assert; it's always... · 35549979
      Andy Wingo Wingo authored
      gst/base/gstbasesink.c (gst_basesink_chain): Remove bogus assert; it's always possible that the pad gets deactivated ...
      
      Original commit message from CVS:
      2005-06-17  Andy Wingo  <wingo@pobox.com>
      
      * gst/base/gstbasesink.c (gst_basesink_chain): Remove bogus
      assert; it's always possible that the pad gets deactivated in
      between the checks in gstpad.c and the implementation. Rely on
      finish_preroll() to return a FLUSHING or similar instead of on the
      assert.
      35549979
    • Andy Wingo Wingo's avatar
      gst/base/gstbasesink.c (gst_basesink_event): Only wait for the clock and post... · d47ea579
      Andy Wingo Wingo authored
      gst/base/gstbasesink.c (gst_basesink_event): Only wait for the clock and post an EOS message if we come out of finish...
      
      Original commit message from CVS:
      2005-06-17  Andy Wingo  <wingo@pobox.com>
      
      * gst/base/gstbasesink.c (gst_basesink_event): Only wait for the
      clock and post an EOS message if we come out of finish_preroll in
      the playing state.
      d47ea579
  14. 08 Jun, 2005 1 commit
    • Andy Wingo Wingo's avatar
      gst/gstutils.c: RPAD fixes all around. · 4b908e33
      Andy Wingo Wingo authored
      Original commit message from CVS:
      2005-06-08  Andy Wingo  <wingo@pobox.com>
      
      * gst/gstutils.c: RPAD fixes all around.
      (gst_element_link_pads): Refcounting fixes.
      
      * tools/gst-inspect.c:
      * tools/gst-xmlinspect.c:
      * parse/grammar.y:
      * gst/base/gsttypefindhelper.c:
      * gst/base/gstbasesink.c:
      * gst/gstqueue.c: RPAD fixes.
      
      * gst/gstghostpad.h:
      * gst/gstghostpad.c: New ghost pad implementation as full proxy
      pads. The tricky thing is they provide both source and sink
      interfaces, since they proxy the internal pad for the external
      pad, and vice versa. Implement with lower-level ProxyPad objects,
      with the interior proxy pad as a child of the exterior ghost pad.
      Should write a doc on this.
      
      * gst/gstpad.h: s/RPAD/PAD/, s/RealPad/Pad/.
      (gst_pad_set_name, gst_pad_set_parent): Macros removed, use
      gst_object API.
      
      * gst/gstpad.c: Big changes. No more stub base GstPad, now all
      pads are real pads. No ghost pads in this file. Not documenting
      the myriad s/RPAD/PAD/ and REALIZE fixes.
      (gst_pad_class_init): Add properties for "direction" and
      "template". Both are construct-only, so they can't change during
      the life of the pad. Fixes properly deriving from GstPad.
      (gst_pad_custom_new, gst_pad_custom_new_from_template): Gone. For
      derived objects, just set properties when creating the objects via
      g_object_new.
      (gst_pad_get_parent): Implement as a function, return NULL if the
      parent is not an element.
      (gst_pad_get_real_parent, gst_pad_add_ghost_pad)
      (gst_pad_remove_ghost_pad, gst_pad_realize): Removed.
      
      * gst/gstobject.c (gst_object_class_init): Make name a construct
      property. Don't set it in the object init.
      
      * gst/gstelement.c (gst_element_add_pad): Don't allow adding pads
      with UNKNOWN direction.
      (gst_element_add_ghost_pad): Remove non-orthogonal API. Replace
      with gst_element_add_pad (e, gst_ghost_pad_new (name, pad)).
      (gst_element_remove_pad): Remove ghost-pad special cases.
      (gst_element_pads_activate): Remove rpad cruft.
      
      * gst/gstbin.c (gst_bin_change_state): Use gst_pad_get_parent to
      catch the pad's-parent-not-an-element case.
      
      * gst/gst.h: Include gstghostpad.h.
      
      * gst/gst.c (init_post): No more real, ghost pads.
      
      * gst/Makefile.am: Add gstghostpad.[ch].
      
      * check/Makefile.am:
      * check/gst/gstbin.c:
      * check/gst/gstghostpad.c (test_ghost_pads): Check that linking
      into a bin creates ghost pads, and that the refcounts are right.
      Partly moved from gstbin.c.
      4b908e33
  15. 02 Jun, 2005 1 commit
    • Wim Taymans's avatar
      gst/: Bufferalloc: return GstFlowReturn to more accuratly report why allocation failed. · d3edbe17
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstbasesink.c: (gst_basesink_pad_buffer_alloc),
      (gst_base_sink_buffer_alloc), (gst_basesink_preroll_queue_push),
      (gst_basesink_activate):
      * gst/base/gstbasesink.h:
      * gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_prepare),
      (gst_pad_link), (gst_pad_accept_caps), (gst_pad_alloc_buffer),
      (gst_pad_query), (gst_pad_start_task):
      * gst/gstpad.h:
      * gst/gstqueue.c: (gst_queue_bufferalloc),
      (gst_queue_handle_sink_event), (gst_queue_chain):
      Bufferalloc: return GstFlowReturn to more accuratly report
      why allocation failed.
      d3edbe17
  16. 30 May, 2005 1 commit
  17. 25 May, 2005 1 commit
    • Wim Taymans's avatar
      gst/: Implement gst_pad_pause/start/stop_task(), take STREAM lock in task function. · add280cd
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstadapter.c: (gst_adapter_peek), (gst_adapter_flush):
      * gst/base/gstbasesink.c: (gst_basesink_preroll_queue_push),
      (gst_basesink_finish_preroll), (gst_basesink_chain),
      (gst_basesink_loop), (gst_basesink_activate),
      (gst_basesink_change_state):
      * gst/base/gstbasesrc.c: (gst_basesrc_do_seek),
      (gst_basesrc_get_range), (gst_basesrc_loop),
      (gst_basesrc_activate):
      * gst/elements/gsttee.c: (gst_tee_sink_activate):
      * gst/gstpad.c: (gst_pad_dispose), (gst_real_pad_class_init),
      (gst_real_pad_init), (gst_real_pad_set_property),
      (gst_real_pad_get_property), (gst_pad_set_active),
      (gst_pad_is_active), (gst_pad_get_query_types), (gst_pad_unlink),
      (gst_pad_link_prepare), (gst_pad_link), (gst_pad_get_real_parent),
      (gst_real_pad_get_caps_unlocked), (gst_pad_peer_get_caps),
      (gst_pad_accept_caps), (gst_pad_get_peer), (gst_pad_realize),
      (gst_pad_event_default_dispatch), (gst_pad_event_default),
      (gst_pad_dispatcher), (gst_pad_query), (gst_real_pad_dispose),
      (gst_pad_save_thyself), (handle_pad_block), (gst_pad_chain),
      (gst_pad_push), (gst_pad_get_range), (gst_pad_pull_range),
      (gst_pad_send_event), (gst_pad_start_task), (gst_pad_pause_task),
      (gst_pad_stop_task):
      * gst/gstpad.h:
      * gst/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_chain),
      (gst_queue_loop), (gst_queue_src_activate):
      * gst/gsttask.c: (gst_task_init), (gst_task_set_lock),
      (gst_task_get_state):
      * gst/gsttask.h:
      * gst/schedulers/threadscheduler.c:
      (gst_thread_scheduler_task_start), (gst_thread_scheduler_func):
      Implement gst_pad_pause/start/stop_task(), take STREAM lock
      in task function.
      Remove ACTIVE pad flag, use FLUSHING everywhere
      Added _pad_chain(), _pad_get_range() to call chain/getrange
      functions.
      Add locks around IS_FLUSHING when reading.
      Take STREAM lock in chain(), get_range() functions so plugins
      don't need to take it anymore.
      add280cd
  18. 19 May, 2005 1 commit
  19. 17 May, 2005 1 commit
    • Wim Taymans's avatar
      gst/: Don't queue buffers in basesink when we are flushing. · 576b2181
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstbasesink.c: (gst_basesink_finish_preroll),
      (gst_basesink_chain_unlocked), (gst_basesink_activate):
      * gst/gstminiobject.c: (gst_mini_object_get_type),
      (gst_mini_object_free):
      * gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_query),
      (gst_pad_push), (gst_pad_push_event):
      * gst/gstqueue.c: (gst_queue_change_state):
      Don't queue buffers in basesink when we are flushing.
      Unref buffer when flushing in basesink.
      Flush queue when going to READY
      Unref buffer when _push() returns an error.
      Don't free MiniObject instance when refcount is incremented
      in _finalize() so that we can recover objects.
      576b2181
  20. 12 May, 2005 1 commit
    • Wim Taymans's avatar
      gst/: Identify sinks by their flag to avoid overly complicated checks (fow now). · 1c4ea621
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstbasesink.c: (gst_basesink_init),
      (gst_basesink_activate):
      * gst/base/gstbasesrc.c: (gst_basesrc_unlock),
      (gst_basesrc_is_seekable):
      * gst/gstbin.c: (gst_bin_add_func), (gst_bin_remove_func),
      (bin_element_is_sink), (gst_bin_change_state):
      * gst/gstelement.c: (gst_element_add_pad), (gst_element_query):
      * gst/gstelement.h:
      Identify sinks by their flag to avoid overly complicated
      checks (fow now).
      Do state changes even for elements not reachable from the
      sinks.
      BaseSink is a sink now :)
      Some more debugging info in the basesrc.
      1c4ea621
  21. 06 May, 2005 2 commits
    • Wim Taymans's avatar
      gst/base/gstbasesink.c: Actually do something with error codes returned from the push functions. · 92dd87a8
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstbasesink.c: (gst_basesink_preroll_queue_empty),
      (gst_basesink_handle_buffer), (gst_basesink_chain_unlocked),
      (gst_basesink_activate):
      Actually do something with error codes returned from the push
      functions.
      92dd87a8
    • Wim Taymans's avatar
      Some more documentation. · c11c932f
      Wim Taymans authored
      Original commit message from CVS:
      * docs/design/part-element-sink.txt:
      * docs/design/part-element-source.txt:
      * gst/base/gstbasesink.c: (gst_basesink_class_init),
      (gst_basesink_event), (gst_basesink_activate):
      * gst/base/gstbasesink.h:
      * gst/base/gstbasesrc.c: (gst_basesrc_init), (gst_basesrc_unlock),
      (gst_basesrc_activate):
      * gst/base/gstbasesrc.h:
      * gst/gstelement.c: (gst_element_pads_activate):
      Some more documentation.
      Fixed scheduling decision in _pads_activate().
      c11c932f
  22. 05 May, 2005 1 commit
  23. 04 May, 2005 1 commit
    • Andy Wingo Wingo's avatar
      GCC 4 fixen. · b4d7be20
      Andy Wingo Wingo authored
      Original commit message from CVS:
      2005-05-04  Andy Wingo <wingo@pobox.com>
      
      * check/Makefile.am:
      * docs/gst/tmpl/gstatomic.sgml:
      * docs/gst/tmpl/gstplugin.sgml:
      * gst/base/gstbasesink.c: (gst_basesink_activate):
      * gst/base/gstbasesrc.c: (gst_basesrc_class_init),
      (gst_basesrc_init), (gst_basesrc_set_dataflow_funcs),
      (gst_basesrc_query), (gst_basesrc_set_property),
      (gst_basesrc_get_property), (gst_basesrc_check_get_range),
      (gst_basesrc_activate):
      * gst/base/gstbasesrc.h:
      * gst/base/gstbasetransform.c: (gst_base_transform_sink_activate),
      (gst_base_transform_src_activate):
      * gst/elements/gstelements.c:
      * gst/elements/gstfakesrc.c: (gst_fakesrc_class_init),
      (gst_fakesrc_set_property), (gst_fakesrc_get_property):
      * gst/elements/gsttee.c: (gst_tee_sink_activate):
      * gst/elements/gsttypefindelement.c: (find_element_get_length),
      (gst_type_find_element_checkgetrange),
      (gst_type_find_element_activate):
      * gst/gstbin.c: (gst_bin_save_thyself), (gst_bin_restore_thyself):
      * gst/gstcaps.c: (gst_caps_do_simplify), (gst_caps_save_thyself),
      (gst_caps_load_thyself):
      * gst/gstelement.c: (gst_element_pads_activate),
      (gst_element_save_thyself), (gst_element_restore_thyself):
      * gst/gstpad.c: (gst_pad_load_and_link), (gst_pad_save_thyself),
      (gst_ghost_pad_save_thyself), (gst_pad_check_pull_range):
      * gst/gstpad.h:
      * gst/gstxml.c: (gst_xml_write), (gst_xml_parse_doc),
      (gst_xml_parse_file), (gst_xml_parse_memory),
      (gst_xml_get_element), (gst_xml_make_element):
      * gst/indexers/gstfileindex.c: (gst_file_index_load),
      (_file_index_id_save_xml), (gst_file_index_commit):
      * gst/registries/gstlibxmlregistry.c: (read_string), (read_uint),
      (read_enum), (load_pad_template), (load_feature), (load_plugin),
      (load_paths):
      * libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_caps),
      (gst_dp_packet_from_event), (gst_dp_caps_from_packet):
      * tools/gst-complete.c: (main):
      * tools/gst-compprep.c: (main):
      * tools/gst-inspect.c: (print_element_properties_info):
      * tools/gst-launch.c: (xmllaunch_parse_cmdline):
      * tools/gst-xmlinspect.c: (print_element_properties):
      GCC 4 fixen.
      b4d7be20
  24. 28 Apr, 2005 1 commit
    • Wim Taymans's avatar
      gst/: Better debugging of clocking info. · 71359c38
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstbasesink.c: (gst_basesink_base_init),
      (gst_basesink_pad_getcaps), (gst_basesink_init),
      (gst_basesink_do_sync):
      * gst/gstclock.c: (gst_clock_entry_new):
      * gst/gstevent.c: (gst_event_discont_get_value):
      * gst/gstpipeline.c: (pipeline_bus_handler),
      (gst_pipeline_change_state):
      * gst/gstsystemclock.c: (gst_system_clock_id_wait_unlocked):
      Better debugging of clocking info.
      Allow NULL values when getting discont values.
      71359c38
  25. 20 Apr, 2005 1 commit
    • Wim Taymans's avatar
      gst/: Make gst_caps_replace() work like other _replace() functions. · ee13415b
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstbasesink.c: (gst_basesink_base_init),
      (gst_basesink_pad_getcaps), (gst_basesink_init),
      (gst_basesink_chain_unlocked):
      * gst/base/gsttypefindhelper.c: (helper_find_suggest),
      (gst_type_find_helper):
      * gst/elements/gsttypefindelement.c:
      (gst_type_find_element_have_type), (gst_type_find_element_init),
      (stop_typefinding), (gst_type_find_element_handle_event),
      (find_suggest), (gst_type_find_element_chain),
      (gst_type_find_element_checkgetrange),
      (gst_type_find_element_getrange), (do_typefind),
      (gst_type_find_element_activate):
      * gst/gstbuffer.c: (_gst_buffer_sub_free),
      (gst_buffer_default_free), (gst_buffer_default_copy),
      (gst_buffer_set_caps):
      * gst/gstcaps.c: (gst_caps_ref), (gst_caps_unref),
      (gst_caps_replace):
      * gst/gstmessage.c: (gst_message_new),
      (gst_message_new_state_changed):
      * gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
      (gst_pad_set_checkgetrange_function),
      (gst_pad_link_prepare_filtered), (gst_pad_relink_filtered),
      (gst_pad_set_caps), (gst_pad_check_pull_range),
      (gst_pad_pull_range), (gst_static_pad_template_get_caps):
      * gst/gstpad.h:
      * gst/gsttypefind.c: (gst_type_find_register):
      Make gst_caps_replace() work like other _replace() functions.
      Use _caps_replace() where possible.
      Make sure _message_new() initialises its field.
      Add gst_static_pad_template_get_caps()
      ee13415b
  26. 12 Apr, 2005 1 commit
    • Wim Taymans's avatar
      Added typefind helper. · 499659f6
      Wim Taymans authored
      Original commit message from CVS:
      Added typefind helper.
      Small preroll fix in the base sink.
      Disable typefind code in basesrc.
      Crude port of typefindelement.
      Fakesrc cleanups.
      499659f6
  27. 05 Apr, 2005 1 commit
    • Wim Taymans's avatar
      gst/: Made base source class, make fakesrc extend it. · 8cf38d3d
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/Makefile.am:
      * gst/base/README:
      * gst/base/gstbasesink.c: (gst_basesink_base_init),
      (gst_basesink_pad_getcaps), (gst_basesink_pad_setcaps),
      (gst_basesink_pad_buffer_alloc), (gst_basesink_init),
      (gst_basesink_do_sync), (gst_basesink_chain_unlocked):
      * gst/base/gstbasesrc.c: (gst_basesrc_get_type),
      (gst_basesrc_base_init), (gst_basesrc_class_init),
      (gst_basesrc_init), (gst_basesrc_get_formats),
      (gst_basesrc_get_query_types), (gst_basesrc_query),
      (gst_basesrc_get_event_mask), (gst_basesrc_event_handler),
      (gst_basesrc_set_property), (gst_basesrc_get_property),
      (gst_basesrc_get_range_unlocked), (gst_basesrc_get_range),
      (gst_basesrc_loop), (gst_basesrc_activate),
      (gst_basesrc_change_state):
      * gst/base/gstbasesrc.h:
      * gst/elements/gstfakesrc.c: (gst_fakesrc_base_init),
      (gst_fakesrc_class_init), (gst_fakesrc_init),
      (gst_fakesrc_event_handler), (gst_fakesrc_set_property),
      (gst_fakesrc_get_property), (gst_fakesrc_create):
      * gst/elements/gstfakesrc.h:
      * gst/elements/gstfilesrc.c: (gst_filesrc_getrange),
      (gst_filesrc_open_file), (gst_filesrc_loop),
      (gst_filesrc_activate), (filesrc_find_peek),
      (gst_filesrc_type_find):
      Made base source class, make fakesrc extend it.
      Add comments to basesink class.
      Some filesrc cleanup.
      8cf38d3d
  28. 29 Mar, 2005 1 commit
    • Wim Taymans's avatar
      gst/: Simplify pad activation. · bb1be5f5
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/Makefile.am:
      * gst/base/README:
      * gst/base/gstbasesink.c: (gst_basesink_get_type),
      (gst_basesink_base_init), (gst_basesink_class_init),
      (gst_basesink_pad_getcaps), (gst_basesink_init),
      (gst_basesink_activate), (gst_basesink_change_state):
      * gst/base/gstbasesink.h:
      * gst/base/gstbasetransform.c: (gst_base_transform_get_type),
      (gst_base_transform_base_init), (gst_base_transform_finalize),
      (gst_base_transform_class_init), (gst_base_transform_init),
      (gst_base_transform_proxy_getcaps), (gst_base_transform_setcaps),
      (gst_base_transform_event), (gst_base_transform_getrange),
      (gst_base_transform_chain), (gst_base_transform_handle_buffer),
      (gst_base_transform_set_property),
      (gst_base_transform_get_property),
      (gst_base_transform_sink_activate),
      (gst_base_transform_src_activate),
      (gst_base_transform_change_state):
      * gst/base/gstbasetransform.h:
      * gst/elements/gstidentity.c: (gst_identity_finalize),
      (gst_identity_class_init), (gst_identity_init),
      (gst_identity_event), (gst_identity_check_perfect),
      (gst_identity_transform), (gst_identity_set_property),
      (gst_identity_get_property), (gst_identity_change_state):
      * gst/elements/gstidentity.h:
      * gst/gstelement.c: (gst_element_get_state_func),
      (gst_element_lost_state), (gst_element_pads_activate):
      * gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
      (gst_pad_check_pull_range), (gst_pad_pull_range):
      * gst/gstpad.h:
      Simplify pad activation.
      Added function to check if pull_range can be performed.
      Error out when pulling inactive or flushing pads.
      Removed const from refcounted types as it does not make sense.
      Simplify pad templates in basesink
      Added base class for simple 1-to-1 transforms.
      Make identity subclass the base transform.
      bb1be5f5
  29. 28 Mar, 2005 1 commit
    • Wim Taymans's avatar
      Added state change code. · 326d36b8
      Wim Taymans authored
      Original commit message from CVS:
      Added state change code.
      Added/updated docs.
      Added sink base class, make fakesink extend the base class.
      Small cleanups in GstPipeline.
      326d36b8