1. 26 Feb, 2004 5 commits
  2. 25 Feb, 2004 4 commits
    • Thomas Vander Stichele's avatar
      fix debugging info in manual · bacf7832
      Thomas Vander Stichele authored
      Original commit message from CVS:
      fix debugging info in manual
      bacf7832
    • Andy Wingo Wingo's avatar
      gst/gstpad.c (gst_pad_link_prepare): Re-add gst_pad_link_prepare. Please email... · bc13ad8a
      Andy Wingo Wingo authored
      gst/gstpad.c (gst_pad_link_prepare): Re-add gst_pad_link_prepare. Please email the list with specific reasons for rev...
      
      Original commit message from CVS:
      2004-02-25  Andy Wingo  <wingo@pobox.com>
      
      * gst/gstpad.c (gst_pad_link_prepare): Re-add
      gst_pad_link_prepare. Please email the list with specific reasons
      for reverting.
      
      ----------------------------------------------------------------------
      bc13ad8a
    • Andy Wingo Wingo's avatar
      gst/gstelement.c (gst_element_dispose): Protect against multiple invocations. · 3f5a8814
      Andy Wingo Wingo authored
      Original commit message from CVS:
      2004-02-24  Andy Wingo  <wingo@pobox.com>
      
      * gst/gstelement.c (gst_element_dispose): Protect against multiple
      invocations.
      
      * gst/schedulers/gstoptimalscheduler.c
      I added a mess of prototypes at the top of the file by way of
      documentation. Some of the operations on chains and groups were
      re-organized.
      
      (create_group): Added a type argument so if the group is enabled,
      the setup_group_scheduler knows what to do.
      (group_elements): Added a type argument here, too, to be passed on
      to create_group.
      (group_element_set_enabled): If an unlinked PLAYING element is
      added to a bin, we have to create a new group to hold the element,
      and this function will be called before the group is added to the
      chain. Thus we have a valid case for group->chain==NULL. Instead
      of calling chain_group_set_enabled, just set the flag on the group
      (the chain's status will be set when the group is added to it).
      (gst_opt_scheduler_state_transition, chain_group_set_enabled):
      Setup the group scheduler when the group is enabled, not
      specifically when an element goes PAUSED->PLAYING. This means
      PLAYING elements can be added, linked, and scheduled into a
      PLAYING pipeline, as was intended.
      (add_to_group): Don't ref the group twice. I don't know when this
      double-ref got in here. Removing it has the potential to cause
      segfaults if other parts of the scheduler are buggy. If you find
      that the scheduler is segfaulting for you, put in an extra ref
      here and see if that hacks over the underlying issue. Of course,
      then find out what code is unreffing a group it doesn't own...
      (create_group): Make the extra refcount floating, and remove it
      after adding the element. This means that...
      (unref_group): Destroy when the refcount reaches 0, not 1, like
      every other refcounted object in the known universe.
      (remove_from_group): When a group becomes empty, set it to be not
      active, and remove it from its chain. Don't unref it again,
      there's no floating reference any more.
      (destroy_group): We have to remove the group from the chain in
      remove_from_group (rather than here) to break refcounting cycles
      (the chain always has a ref on the group). So assert that
      group->chain==NULL.
      (ref_group_by_count): Removed, it was commented out anyway.
      (merge_chains): Use the remove_from_chain and add_to_chain
      primitives to do the reparenting, instead of rolling our own
      implementation.
      (add_to_chain): The first non-disabled group in the chain's group
      list will be the entry point for the chain. Because buffers can
      accumulate in loop elements' peer bufpens, we preferentially
      schedule loop groups before get groups to avoid unnecessary
      execution of get-based groups when the bufpens are already full.
      (gst_opt_scheduler_schedule_run_queue): Debug fixes.
      (get_group_schedule_function): Ditto.
      (loop_group_schedule_function): Ditto.
      (gst_opt_scheduler_loop_wrapper): Ditto.
      (gst_opt_scheduler_iterate): Ditto.
      
      I understand the opt scheduler now, yippee!
      
      * gst/gstpad.c: All throughout, added FIXMEs to look at for 0.9.
      (gst_pad_get_name, gst_pad_set_chain_function)
      (gst_pad_set_get_function, gst_pad_set_event_function)
      (gst_pad_set_event_mask_function, gst_pad_get_event_masks)
      (gst_pad_get_event_masks_default, gst_pad_set_convert_function)
      (gst_pad_set_query_function, gst_pad_get_query_types)
      (gst_pad_get_query_types_default)
      (gst_pad_set_internal_link_function)
      (gst_pad_set_formats_function, gst_pad_set_link_function)
      (gst_pad_set_fixate_function, gst_pad_set_getcaps_function)
      (gst_pad_set_bufferalloc_function, gst_pad_unlink)
      (gst_pad_renegotiate, gst_pad_set_parent, gst_pad_get_parent)
      (gst_pad_add_ghost_pad, gst_pad_proxy_getcaps)
      (gst_pad_proxy_pad_link, gst_pad_proxy_fixate)
      (gst_pad_get_pad_template_caps, gst_pad_check_compatibility)
      (gst_pad_get_peer, gst_pad_get_allowed_caps)
      (gst_pad_alloc_buffer, gst_pad_push, gst_pad_pull)
      (gst_pad_selectv, gst_pad_select, gst_pad_template_get_caps)
      (gst_pad_event_default_dispatch, gst_pad_event_default)
      (gst_pad_dispatcher, gst_pad_send_event, gst_pad_convert_default)
      (gst_pad_convert, gst_pad_query_default, gst_pad_query)
      (gst_pad_get_formats_default, gst_pad_get_formats): Better
      argument checks, and some doc fixes.
      
      (gst_pad_custom_new_from_template): Um, does anyone
      use these functions? Actually make a custom pad instead of a
      normal one.
      (gst_pad_try_set_caps): Transpose some checks.
      (gst_pad_try_set_caps_nonfixed): Same, and use a macro to check if
      the pad is in negotiation.
      (gst_pad_try_relink_filtered): Use pad_link_prepare.
      
      * gst/gstelement.c: Remove prototypes also defined in gstclock.h.
      
      * gst/gstelement.h:
      * gst/gstclock.h: Un-deprecate the old clocking API, as discussed
      on the list.
      3f5a8814
    • Thomas Vander Stichele's avatar
      better debugging · 79f5d870
      Thomas Vander Stichele authored
      Original commit message from CVS:
      better debugging
      79f5d870
  3. 24 Feb, 2004 2 commits
  4. 22 Feb, 2004 5 commits
  5. 20 Feb, 2004 4 commits
    • Andy Wingo Wingo's avatar
      gst/: Debugging tweaks. · cded585a
      Andy Wingo Wingo authored
      Original commit message from CVS:
      2004-02-20  Andy Wingo  <wingo@pobox.com>
      
      * gst/gstbin.c:
      * gst/gstbuffer.c:
      * gst/gstplugin.c:
      * gst/registries/gstxmlregistry.c:
      * gst/schedulers/gstoptimalscheduler.c: Debugging tweaks.
      
      * gst/gstelement.c (gst_element_set_scheduler): Debugging fixes.
      (gst_element_add_pad): DEBUG->INFO, some fixes.
      (gst_element_get_compatible_pad_template): Just see if the
      templates' caps intersect, not if one is a strict subset of the
      other. This conforms more to what gst_pad_link_intersect() does.
      (gst_element_class_add_pad_template): Don't memcpy the pad
      template, just ref it.
      (gst_element_get_compatible_pad_filtered): Clean up debug messages
      
      * gst/gstpad.c (gst_pad_can_link_filtered): Debug a true result.
      (gst_pad_link_filtered): Debug changes.
      (gst_pad_link_prepare): New function, consolidated from
      can_link_filtered and link_filtered.
      
      * gst/parse/grammar.y (gst_parse_perform_link): Made INFO output
      look more like that of the functions in gstelement.c
      
      * gst/gstinfo.c (gst_debug_print_object): Put a space before the
      object, and return the empty string if object is NULL.
      
      * gst/parse/parse.l: Remove trailing newlines when calling PRINT.
      * gst/parse/grammar.y (YYFPRINTF): Log bison debugging info via
      LOG, not DEBUG. We still get flex info on debug.
      
      * gst/registries/gstxmlregistry.c (gst_xml_registry_load): Make
      debug string more verbose.
      (plugin_times_older_than): DEBUG->LOG.
      cded585a
    • Julien Moutte Moutte's avatar
      gst/gsttag.h: Adding video-codec and audio-codec for demuxers which will emit... · ee700ccc
      Julien Moutte Moutte authored
      gst/gsttag.h: Adding video-codec and audio-codec for demuxers which will emit found_tag for each stream they demux wi...
      
      Original commit message from CVS:
      2004-02-20  Julien MOUTTE <julien@moutte.net>
      
      * gst/gsttag.h: Adding video-codec and audio-codec for demuxers which
      will emit found_tag for each stream they demux with the codec.
      ee700ccc
    • David Schleef's avatar
      random checkin · cc276e93
      David Schleef authored
      Original commit message from CVS:
      random checkin
      cc276e93
    • Benjamin Otte's avatar
      gst/gstevent.c: copy navigation event correctly. Check freeing tag lists. · 7155cfae
      Benjamin Otte authored
      Original commit message from CVS:
      2004-02-20  Benjamin Otte  <otte@gnome.org>
      
      * gst/gstevent.c: (_gst_event_copy), (_gst_event_free):
      copy navigation event correctly. Check freeing tag lists.
      * gst/gstthread.c: (gst_thread_change_state):
      don't abort() on state changing mess - it might happen because of
      bugs.
      * gst/gstvalue.c: (gst_value_set_caps), (gst_value_get_caps):
      use boxed functions
      * gst/gstvalue.h:
      fix GST_VALUE_HOLDS_CAPS
      7155cfae
  6. 19 Feb, 2004 5 commits
  7. 18 Feb, 2004 1 commit
    • David Schleef's avatar
      gst/elements/gstmultifilesrc.c: Use G_TYPE_STRING in signal prototype instead of G_TYPE_POINTER. · 67455089
      David Schleef authored
      Original commit message from CVS:
      * gst/elements/gstmultifilesrc.c: (gst_multifilesrc_class_init):
      Use G_TYPE_STRING in signal prototype instead of G_TYPE_POINTER.
      * gst/elements/gsttypefind.c: (gst_type_find_element_class_init):
      Use GST_TYPE_CAPS in signal prototype.
      * gst/gstcaps.c: (_gst_caps_initialize), (gst_caps_copy_conditional):
      Convert GST_TYPE_CAPS to boxed.
      * gst/gstelement.c: (gst_element_class_init):
      Use GST_TYPE_TAG_LIST in signal prototype.
      * gst/gstindex.c: (gst_index_class_init):
      * gst/gstindex.h:
      Add GST_TYPE_INDEX_ENTRY type.
      * gst/gstmarshal.list:
      Add necessary marshal types.
      * gst/gstpad.c: (gst_real_pad_class_init),
      (_gst_real_pad_fixate_accumulator), (gst_pad_link_fixate),
      (gst_pad_recover_caps_error):
      Use GST_TYPE_CAPS in signal prototypes.  Fix some debugging strings.
      * gst/gststructure.c: (_gst_structure_initialize),
      (gst_structure_copy), (_gst_structure_copy_conditional):
      * gst/gststructure.h:
      Convert GST_TYPE_STRUCTURE to boxed.
      * gst/gsttag.c: (gst_tag_list_get_type):
      * gst/gsttag.h:
      Add GST_TYPE_TAG_LIST type.
      67455089
  8. 17 Feb, 2004 3 commits
  9. 16 Feb, 2004 9 commits
  10. 15 Feb, 2004 1 commit
    • Julien Moutte Moutte's avatar
      gst/gstbin.c: Fix a big bug that was breaking pipelines like sinesrc ! { queue... · 0f21f592
      Julien Moutte Moutte authored
      gst/gstbin.c: Fix a big bug that was breaking pipelines like sinesrc ! { queue ! osssink } when an error was thrown b...
      
      Original commit message from CVS:
      2004-02-15  Julien MOUTTE  <julien@moutte.net>
      
      * gst/gstbin.c: (gst_bin_change_state), (gst_bin_iterate): Fix a big
      bug that was breaking pipelines like sinesrc ! { queue ! osssink } when
      an error was thrown by osssink. Basically a state change failure for
      an element in a different scheduling group was considered as successfull        , which means that caps nego was going on and weird stuff happened. Like        i wrote in the comment there, if someone want to revert that please
      drop me a mail explaining why because i really see no point in keeping
      that broken behaviour there.
      * gst/gstqueue.c: (gst_queue_get): Add a safety check as the queue CAN
      be empty, we then return NULL which will trigger a nice error when
      pulling from the pad.
      0f21f592
  11. 14 Feb, 2004 1 commit