1. 12 Feb, 2020 1 commit
    • Henry Wilkes's avatar
      caps: fix is_strictly_equal · 407e3258
      Henry Wilkes authored
      Fixed gst_caps_is_strictly_equal() to take into account whether either of
      the caps are ANY caps. Previously, two ANY caps could be considered not
      strictly equal if one of them still contained some remnant *internal*
      structure (this can happen if an ANY caps has emerged from an append or
      merge operation). Also, an ANY caps with no remnant internal structures
      was considered strictly equal to an EMPTY caps. Similarly, a non-ANY caps
      was considered strictly equal to an ANY caps if its remnant internal
      structures happened to match.
      
      Also changed gst_caps_is_fixed to take into account that an ANY caps
      should not be considered fixed even if it contains a single remnant
      internal fixed structure. This affects gst_caps_is_equal(), which uses a
      separate method if both caps are fixed. Previously, this meant that a
      non-ANY fixed caps was considered equal to an ANY caps if it contained a
      single matching remnant internal structure.
      
      Added some tests for these two equality methods, which covers the above
      examples, as well as asserts existing behaviour.
      
      Fixes #496
      407e3258
  2. 11 Dec, 2018 1 commit
  3. 12 Nov, 2018 1 commit
  4. 10 Nov, 2018 1 commit
  5. 24 Nov, 2017 1 commit
  6. 09 Mar, 2017 1 commit
  7. 29 Jun, 2015 1 commit
  8. 30 May, 2015 1 commit
  9. 25 May, 2015 1 commit
    • Jan Schmidt's avatar
      gstvalue: Add GstFlagSet type · f9e5178d
      Jan Schmidt authored
      GstFlagSet is a new type designed for negotiating sets
      of boolean capabilities flags, consisting of a 32-bit
      flags bitfield and 32-bit mask field. The mask field
      indicates which of the flags bits an element needs to have
      as specific values, and which it doesn't care about.
      
      This allows efficient negotiation of arrays of boolean
      capabilities.
      
      The standard serialisation format is FLAGS:MASK, with
      flags and mask fields expressed in hexadecimal, however
      GstFlagSet has a gst_register_flagset() function, which
      associates a new GstFlagSet derived type with an existing
      GFlags gtype. When serializing a GstFlagSet with an
      associated set of GFlags, it also serializes a human-readable
      form of the flags for easier debugging.
      
      It is possible to parse a GFlags style serialisation of a
      flagset, without the hex portion on the front. ie,
      +flag1/flag2/flag3+flag4, to indicate that
      flag1 & flag4 must be set, and flag2/flag3 must be unset,
      and any other flags are don't-care.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=746373
      f9e5178d
  10. 16 Dec, 2014 2 commits
  11. 09 Aug, 2014 1 commit
  12. 26 Jun, 2014 1 commit
  13. 22 Jun, 2014 1 commit
  14. 04 Feb, 2014 1 commit
  15. 13 Nov, 2013 1 commit
  16. 10 Oct, 2013 2 commits
  17. 06 Apr, 2013 1 commit
  18. 31 Mar, 2013 1 commit
  19. 25 Mar, 2013 1 commit
  20. 13 Feb, 2013 1 commit
  21. 03 Nov, 2012 1 commit
  22. 29 Sep, 2012 1 commit
    • Tim-Philipp Müller's avatar
      value: avoid duplicates when intersecting lists · 507fc9ce
      Tim-Philipp Müller authored
      Fixes negotiation taking a ridiculous amount of
      time (multiple 10s of seconds on a core2) when
      there are duplicate entries in lists.
      
      Could have a negative performance impact on other
      scenarios because we now have to iterate the
      dest list to avoid duplicates, but we don't
      have a lot of lists any more these days, and
      they tend to be small anyway. The negatives
      are hopefully countered by the positive effects
      of reducing the list length early on in the
      process. And in any case, it's the right thing
      to do.
      
      Based on patch by Andre Moreira Magalhaes.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=684981
      507fc9ce
  23. 12 Mar, 2012 3 commits
    • Wim Taymans's avatar
      caps: make _normalize take ownership of input · 67931bfd
      Wim Taymans authored
      Make gst_caps_normalize() take ownership of the input so that it can more
      intelligently decide when to copy or not.
      67931bfd
    • Wim Taymans's avatar
      caps: _do_simplify() -> _simplify() · 8a76c326
      Wim Taymans authored
      Rename _do_simplify() to _simplify(). The name was introduced as a replacement
      method for a deprecated method but we can now rename it again.
      Fix some docs.
      8a76c326
    • Wim Taymans's avatar
      caps: improve _do_simplify · 9cdbffea
      Wim Taymans authored
      Make gst_caps_do_simplify() take ownership of the input caps and produce a
      simplified output caps. This removes the requirement of having writable input
      caps and the method can make the caps writable only when needed.
      9cdbffea
  24. 11 Mar, 2012 1 commit
    • Wim Taymans's avatar
      caps: avoid using in-place oprations · 43abf99a
      Wim Taymans authored
      Rework some caps operations so they don't rely on writable caps but instead take
      ownership of the input caps and do _make_writable() only when needed.
      Remove some const from caps functions, it does not make much sense for
      refcounted objects and does not allow us to return a refcount to the const input
      caps.
      Rework the base classes fixate vmethods to not operate on the caps in-place.
      All this saves us around 30% of caps and structure copy and new operations.
      43abf99a
  25. 22 Aug, 2011 1 commit
  26. 30 May, 2011 1 commit
  27. 27 May, 2011 2 commits
    • Sebastian Dröge's avatar
      caps: Optimize gst_caps_is_subset() · d98e9acb
      Sebastian Dröge authored
      ..and as a result gst_caps_is_equal() and others.
      
      This now only checks if for every subset structure there is
      a superset structure in the superset caps. Previously we were
      subtracting one from another, creating completely new caps
      and then even simplified them.
      
      The new implemention now is about 1.27 times faster and doesn't
      break the -base unit tests are anything anymore.
      d98e9acb
    • Sebastian Dröge's avatar
      caps: Fix subset check in gst_caps_merge() · 0cf2dfd0
      Sebastian Dröge authored
      Caps A are a subset of caps B even if caps B doesn't
      have all fields of caps A.
      
      Also add a unit test for this.
      0cf2dfd0
  28. 14 May, 2011 1 commit
    • Sebastian Dröge's avatar
      caps: Merge structures when intersecting instead of appending them · 6e57ce32
      Sebastian Dröge authored
      This prevents adding duplicates over and over again to the resulting
      caps if they already describe the new intersection result.
      
      While this changes intersection from O(n*m) to O(n^2*m), it results in
      smaller caps, which in the end will decrease further processing times.
      
      For example in an audioconvert ! audioconvert ! audioconvert pipeline,
      when forwarding the downstream caps preference in basetransform
      (see e26da72de25a91c3eaad9f7c8b2f53ba888a0394) this results in
      16 instead of 191 caps structures.
      6e57ce32
  29. 09 May, 2011 1 commit
  30. 05 May, 2011 2 commits
    • Sebastian Dröge's avatar
      caps: Merge structures when intersecting instead of appending them · dc63e382
      Sebastian Dröge authored
      This prevents adding duplicates over and over again to the resulting
      caps if they already describe the new intersection result.
      
      While this changes intersection from O(n*m) to O(n^2*m), it results in
      smaller caps, which in the end will decrease further processing times.
      
      For example in an audioconvert ! audioconvert ! audioconvert pipeline,
      when forwarding the downstream caps preference in basetransform
      (see e26da72de25a91c3eaad9f7c8b2f53ba888a0394) this results in
      16 instead of 191 caps structures.
      dc63e382
    • Wim Taymans's avatar
      Revert "context: use context on buffers instead of caps" · c4751ec8
      Wim Taymans authored
      This reverts commit 9ef1346b.
      
      Way to much for one commit and I'm not sure we want to get rid of the pad caps
      just like that. It's nice to have the buffer and its type in onw nice bundle
      without having to drag the complete context with it.
      c4751ec8
  31. 04 May, 2011 1 commit
  32. 24 Mar, 2011 1 commit
  33. 08 Mar, 2011 1 commit
  34. 01 Jul, 2010 1 commit