1. 27 Jul, 2005 2 commits
    • 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
    • Ronald S. Bultje's avatar
      gst/base/gstbasetransform.c: Make debugging actually useful. · 4795d257
      Ronald S. Bultje authored
      Original commit message from CVS:
      * gst/base/gstbasetransform.c: (gst_base_transform_getcaps),
      (gst_base_transform_configure_caps), (gst_base_transform_setcaps),
      (gst_base_transform_get_size), (gst_base_transform_handle_buffer):
      Make debugging actually useful.
      4795d257
  2. 18 Jul, 2005 1 commit
    • Wim Taymans's avatar
      docs/design/: Some more docs in the works. · 2b1ce5f2
      Wim Taymans authored
      Original commit message from CVS:
      * docs/design/part-dynamic.txt:
      * docs/design/part-events.txt:
      * docs/design/part-seeking.txt:
      Some more docs in the works.
      
      * gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
      (gst_base_transform_getcaps), (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_sink_activate_push),
      (gst_base_transform_src_activate_pull),
      (gst_base_transform_set_passthrough),
      (gst_base_transform_is_passthrough):
      Refcounting fixes.
      
      * gst/gstbus.c: (gst_bus_source_dispatch), (gst_bus_poll):
      Cleanups.
      
      * gst/gstevent.c: (gst_event_finalize):
      Set SRC to NULL.
      
      * gst/gstutils.c: (gst_element_unlink),
      (gst_pad_get_parent_element), (gst_pad_proxy_getcaps),
      (gst_pad_proxy_setcaps):
      * gst/gstutils.h:
      Add _get_parent_element() to get a pads parent as an element.
      2b1ce5f2
  3. 15 Jul, 2005 1 commit
    • Wim Taymans's avatar
      gst/base/gstbasetransform.*: Make passthrough work using the bufferpools. · 7f4581d9
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstbasetransform.c: (gst_base_transform_init),
      (gst_base_transform_transform_caps), (gst_base_transform_getcaps),
      (gst_base_transform_configure_caps), (gst_base_transform_setcaps),
      (gst_base_transform_get_size), (gst_base_transform_buffer_alloc),
      (gst_base_transform_handle_buffer), (gst_base_transform_getrange),
      (gst_base_transform_chain), (gst_base_transform_change_state),
      (gst_base_transform_set_passthrough),
      (gst_base_transform_is_passthrough):
      * gst/base/gstbasetransform.h:
      Make passthrough work using the bufferpools.
      Changed API a bit, subclasses have to write into a buffer
      provided by the base class.
      More debug info in nego functions.
      
      * gst/elements/gstidentity.c: (gst_identity_init),
      (gst_identity_transform):
      Port to new base class.
      7f4581d9
  4. 12 Jul, 2005 1 commit
    • Wim Taymans's avatar
      gst/base/gstbasetransform.c: Added more debug info in the negotiate process. · f7c0c25d
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstbasetransform.c: (gst_base_transform_setcaps):
      Added more debug info in the negotiate process.
      
      * gst/gstmessage.h:
      Prepare for segment playback.
      
      * gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_set_caps):
      Better debugging.
      
      * gst/gstutils.c:
      Some more docs.
      
      * tools/gst-launch.c: (main):
      NULL pipeline on errors.
      f7c0c25d
  5. 05 Jul, 2005 2 commits
    • Andy Wingo Wingo's avatar
      gst/base/gstbasetransform.c (gst_base_transform_setcaps): Default to returning... · fd980b9f
      Andy Wingo Wingo authored
      gst/base/gstbasetransform.c (gst_base_transform_setcaps): Default to returning TRUE for the case when tranform_caps r...
      
      Original commit message from CVS:
      2005-07-05  Andy Wingo  <wingo@pobox.com>
      
      * gst/base/gstbasetransform.c (gst_base_transform_setcaps):
      Default to returning TRUE for the case when tranform_caps returns
      a fixed caps, like for identity or volume.
      fd980b9f
    • Andy Wingo Wingo's avatar
      check/: Application message API change. · 83a7075f
      Andy Wingo Wingo authored
      Original commit message from CVS:
      2005-07-05  Andy Wingo  <wingo@pobox.com>
      
      * check/gst/gstbus.c (pound_bus_with_messages):
      * check/gst/gstmessage.c (START_TEST):
      * check/pipelines/simple_launch_lines.c (got_handoff): Application
      message API change.
      
      * gst/base/gstbasetransform.c (gst_base_transform_setcaps): More
      logic weaks here: always run transform_caps, trying passthrough
      operation only if the original caps intersects with the transform.
      
      * gst/gstpad.c (gst_pad_link_check_compatible_unlocked): Debug
      source and sink caps.
      
      * gst/base/gstbasetransform.c (gst_base_transform_getcaps):
      Intersect the peer caps with the pad template before going into
      transform_caps.
      (gst_base_transform_transform_caps): More debugging.
      
      * gst/gstmessage.h (gst_message_new_application): Take a GstObject
      src argument.
      83a7075f
  6. 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
  7. 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
  8. 11 May, 2005 1 commit
    • Andy Wingo Wingo's avatar
      gst/elements/gstfakesink.c (gst_fakesink_render): Er, emit with · e44beb9f
      Andy Wingo Wingo authored
      Original commit message from CVS:
      2005-05-10  Andy Wingo  <wingo@pobox.com>
      
      * gst/elements/gstfakesink.c (gst_fakesink_render): Er, emit with
      *all* the arguments.
      
      * gst/base/gstbasetransform.c (gst_base_transform_event): Grab the
      stream lock if it's a FLUSH_DONE; normal flushes don't get the
      lock (according to the docs -- if this is wrong change the docs).
      
      * gst/gstpipeline.c (gst_pipeline_change_state): Set the bus to
      flush messages in the NULL state.
      
      * gst/gstbus.c (gst_bus_post): If a bus is flushing, unref the
      message immediately and return.
      (gst_bus_set_flushing): New function. If a bus is flushing, it
      flushes out any queued messages and immediately unrefs new
      messages. This is so when an element goes to NULL, all of the
      unhandled messages coming from it can be freed, and their
      references to the element dropped. In other words: message source
      ref considered harmful :P
      
      * gst/gstbin.c (gst_bin_change_state): Unref peer element when
      we're finished with it.
      
      * gst/gstmessage.c (gst_message_new_state_changed):
      e44beb9f
  9. 09 May, 2005 2 commits
    • Andy Wingo Wingo's avatar
      gst/base/gstbasetransform.c (gst_base_transform_proxy_getcaps): Intersect the... · b5940102
      Andy Wingo Wingo authored
      gst/base/gstbasetransform.c (gst_base_transform_proxy_getcaps): Intersect the peer's caps with our caps.
      
      Original commit message from CVS:
      2005-05-09  Andy Wingo  <wingo@pobox.com>
      
      * gst/base/gstbasetransform.c (gst_base_transform_proxy_getcaps):
      Intersect the peer's caps with our caps.
      b5940102
    • Wim Taymans's avatar
      gst/: Implement accept_caps. · e70ec7b8
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstbasetransform.c: (gst_base_transform_proxy_getcaps),
      (gst_base_transform_event):
      * gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_query):
      Implement accept_caps.
      Fix silly lock/unlock mismatch in base class.
      e70ec7b8
  10. 06 May, 2005 1 commit
    • Wim Taymans's avatar
      gst/: Fix gst_pad_peer_get_caps(), make it return NULL if no peer. · d7b231e6
      Wim Taymans authored
      Original commit message from CVS:
      * gst/base/gstbasetransform.c: (gst_base_transform_proxy_getcaps):
      * gst/elements/gstcapsfilter.c: (gst_capsfilter_getcaps):
      * gst/gstpad.c: (gst_pad_peer_get_caps):
      * gst/gstqueue.c: (gst_queue_init), (gst_queue_getcaps),
      (gst_queue_bufferalloc), (gst_queue_handle_sink_event),
      (gst_queue_src_activate), (gst_queue_change_state):
      * gst/gstqueue.h:
      * gst/gstutils.c: (gst_element_get_compatible_pad_template),
      (intersect_caps_func):
      Fix gst_pad_peer_get_caps(), make it return NULL if no peer.
      Always take QUEUE_LOCK after STREAM_LOCK or we might deadlock.
      Some fixes for the peer_get_caps() change.
      d7b231e6
  11. 05 May, 2005 1 commit
  12. 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
  13. 31 Mar, 2005 1 commit
    • Wim Taymans's avatar
      gst/: Added start/stop methods to transform base class so subclasses don't... · 96d17a34
      Wim Taymans authored
      gst/: Added start/stop methods to transform base class so subclasses don't need to deal with state changes even.
      
      Original commit message from CVS:
      * gst/base/gstbasetransform.c: (gst_base_transform_base_init),
      (gst_base_transform_class_init), (gst_base_transform_init),
      (gst_base_transform_setcaps), (gst_base_transform_handle_buffer),
      (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_class_init),
      (gst_identity_event), (gst_identity_check_perfect),
      (gst_identity_transform), (gst_identity_start),
      (gst_identity_stop):
      Added start/stop methods to transform base class so subclasses
      don't need to deal with state changes even.
      96d17a34
  14. 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