schema_version: 0.3
type: transition
identifier: luma
title: Wipe
version: 2
copyright: Meltytech, LLC
creator: Dan Dennedy
license: LGPLv2.1
language: en
tags:
  - Video
description: >
  A generic dissolve and wipe transition processor.
   
  "luma" gets its name from how it uses a grayscale "map" file. As the luma
  value varies over time, a threshold filter is applied to the map to
  determine what parts of frame A vs. frame B to show. It reads PGM files up
  to 16 bits! Alternatively, it can use the first frame from any producer that
  outputs yuv, but it will be limited to the luma gamut of 220 values. This
  performs field-based rendering unless the A frame property "progressive" or
  "consumer_progressive" or the transition property "progressive" is set to 1.
bugs:
  - Assumes lower field first output.
parameters:
  - identifier: resource
    title: Luma map file
    type: string
    description: >
      Either PGM or any other producible video. If not supplied, performs a dissolve.
    argument: yes

  - identifier: factory
    title: Factory
    type: string
    description: >
      The name of a factory service used as a non-PGM producer loader.
    default: loader

  - identifier: softness
    title: Softness
    type: float
    mutable: yes
    description: >
      Only when using a luma map, how soft to make the edges between A and B.
      0.0 = no softness. 1.0 = too soft.

  - identifier: reverse
    title: Reverse
    type: integer
    mutable: yes
    description: >
      Reverse the direction of the transition.
    default: 0

  - identifier: producer.*
    title: Producer
    mutable: yes
    description: >
      Properties may be set on the encapsulated producer. Any property starting 
      with "producer." is passed to the non-PGM luma producer.
    readonly: no

  - identifier: alpha_over
    title: Use over-blending on the alpha channel
    type: boolean
    default: 0
    mutable: yes

  - identifier: fix_background_alpha
    title: Ensure padding is transparent
    description: >
      This is a fix for version 2 that ensures the background of sources
      without an alpha channel and aspect ratio that does not match the profile
      get padding that includes an alpha channel. Basically, this should be the
      new default behavior, but a property is needed to not unexpectedly change
      the result of existing projects and scripts.
    type: boolean
    default: 0
    mutable: yes
