1. 24 Mar, 2017 1 commit
    • Nicolas Dufresne's avatar
      overrides: Add more GstValue overrides · a4566ffb
      Nicolas Dufresne authored
      This patch adds overrides to support IntRange, Int64Range, DoubleRange,
      FractionRange, Array and List. For integer ranges, it maps this
      to python 'range'. Gst.IntRange() and Gst.Int64Range() are simple cast
      to let the underlying code know which GType to use. To set such range in
      python you will do:
      
        structure["range"] = Gst.IntRange(range(0,10,2)))
      
      Same for the 64 bit variant. And when you do:
      
        r = structure.get_value("range")
      
      A range will be returned directly, without the wrapper. For DoubleRange
      and FractionRange, there is no native support in python. So the usage
      will be:
      
        structure["range"] = Gst.DoubleRange(0,10.0)
        structure["range"] =
            Gst.FractionRange(Gst.Fraction(1/30), Gst.Fraction(1/5)
      
      When getting this value, Gst.DoubleRange and Gst.FractionRange class are
      returned. They both have start/stop members. The naming was taken from
      range type.
      
      For Array and List, both uses the native list type, though they can be
      constructed from any python sequence. So again, the class is just like
      a cast, to let it pick the right GType and python list are being
      returned.
      
        structure["list"] = Gst.ValueList([1,2,3,4])
        structure["array"] = Gst.ValueArray([1,2,3,4)
      
      Using string and tuple could also work. Since Gst.ValueList/Array are
      sequence, you can convert one to the other with:
      
        list = Gst.ValueList([1,2,3,4])
        array = Gst.ValueArray (list)
      
      https://bugzilla.gnome.org/show_bug.cgi?id=753754
      a4566ffb
  2. 04 Nov, 2016 1 commit