# DoubleWeave

std.DoubleWeave(vnode clip[, bint tff])

  Weaves the fields back together from a clip with interleaved fields.

  Since VapourSynth only has a weak notion of field order internally, tff may have to be set. Setting tff to true means top fields first and false means bottom fields first. Note that the `_Field` frame property, if present and in a valid combination, takes precedence over tff.

  DoubleWeave’s output has the same number of frames as the input. One must use DoubleWeave together with SelectEvery to undo the effect of SeparateFields:

      sep = core.std.SeparateFields(source)
      ...
      woven = core.std.DoubleWeave(sep)
      woven = core.std.SelectEvery(woven, 2, 0)

  The `_Field` frame property is deleted and `_FieldBased` is set accordingly.