schema_version: 7.0 type: transition identifier: affine title: Transform version: 6 copyright: Meltytech, LLC creator: Charles Yates contributor: - Dan Dennedy license: LGPLv2.1 language: en tags: - Video parameters: - identifier: distort title: Ignore aspect ratio description: > Determines whether the image aspect ratio will be distorted while scaling to completely fill the rectangle. type: boolean default: 0 mutable: yes widget: checkbox - identifier: fill title: Upscale to fill description: > Determines whether the image will be scaled up to fill the rectangle or whether the size will be constrained to 100% of the profile resolution. type: boolean default: 1 mutable: yes widget: checkbox - identifier: repeat_off title: Disable looping description: > When animating properties with keyframes, whether to repeat the animation after it reaches the last key frame. type: boolean default: 0 mutable: yes widget: checkbox - identifier: mirror_off title: Disable ping-pong description: > When animating properties with keyframes and repeat_off=0, whether the animation alternates between reverses and forwards for each repetition. type: boolean default: 0 mutable: yes widget: checkbox - identifier: cycle title: Period description: > The duration to use when interpreting key frames for animation. If 0, the default, the transition length is used. If in range (0, 1), a percentage of transition length; otherwise, the number of frames. type: float default: 0 mutable: yes - identifier: keyed title: Key-framed description: Whether rotate, shear, and offset are key-framed or not. type: boolean default: 0 mutable: yes widget: checkbox - identifier: ox title: Horizontal offset type: float minimum: 0 default: 0 mutable: yes animation: yes unit: pixels - identifier: oy title: Vertical offset type: float minimum: 0 default: 0 mutable: yes animation: yes unit: pixels - identifier: rotate_x title: Rotate on X axis description: > Animate rotation around the X axis. If keyed=0, the amount to rotate per frame. type: float unit: degrees default: 0 mutable: yes - identifier: rotate_y title: Rotate on Y axis description: > Animate rotation around the Y axis. If keyed=0, the amount to rotate per frame. type: float unit: degrees default: 0 mutable: yes - identifier: rotate_z title: Rotate on Z axis description: > Animate rotation around the Z axis. If keyed=0, the amount to rotate per frame. type: float unit: degrees default: 0 mutable: yes - identifier: fix_rotate_x title: X axis rotation description: Fixed amount of rotation around the X axis. type: float unit: degrees default: 0 mutable: yes animation: yes - identifier: fix_rotate_y title: Y axis rotation description: Fixed amount of rotation around the Y axis. type: float unit: degrees default: 0 mutable: yes animation: yes - identifier: fix_rotate_z title: Z axis rotation description: Fixed amount of rotation around the Z axis. type: float unit: degrees default: 0 mutable: yes animation: yes - identifier: shear_x title: Shear along X axis description: > Animate shear along the X axis. If keyed=0, the shear angle increment per frame. type: float unit: degrees default: 0 mutable: yes - identifier: shear_y title: Shear along Y axis description: > Animate shear along the Y axis. If keyed=0, the shear angle increment per frame. type: float unit: degrees default: 0 mutable: yes - identifier: shear_z title: Shear along Z axis description: > Animate shear along the Z axis. If keyed=0, the shear angle increment per frame. type: float unit: degrees default: 0 mutable: yes - identifier: fix_shear_x title: X axis shear description: Fixed amount of shear along the X axis. type: float unit: degrees default: 0 mutable: yes animation: yes - identifier: fix_shear_y title: Y axis shear description: Fixed amount of shear along the Y axis. type: float unit: degrees default: 0 mutable: yes animation: yes - identifier: fix_shear_z title: Z axis shear description: Fixed amount of shear along the Z axis. type: float unit: degrees default: 0 mutable: yes animation: yes - identifier: mirror title: Ping-pong description: > When animating properties with key frames, whether the animation should behave with a ping-pong effect once over the duration of the transition. It will run in the forward direction over the first half the transition and in the reverse direction over the second half. type: boolean - identifier: scale title: Scale description: > Whether to automatic upscale B frame image to ensure the rectangle is filled. type: boolean default: 0 mutable: yes widget: checkbox - identifier: scale_x title: Horizontal scale description: A scale factor applied along the X axis. type: float default: 0 mutable: yes animation: yes - identifier: scale_y title: Vertical scale description: A scale factor applied along the Y axis. type: float default: 0 mutable: yes animation: yes - identifier: invert_scale title: Invert Scale description: > Whether to invert the scale_x and scale_y values. This is helpful to make animation interpolation sane because otherwise the scale values do not animate linearly. type: boolean default: 0 mutable: yes widget: checkbox - identifier: b_alpha title: Affect alpha channel description: > Whether to use the B frame's alpha channel in transformations for the output, The affine filter sets this to 1 by default. Basically, this tells the blend function to use the Porter-Duff atop mode instead of the default over. type: boolean default: 0 mutable: yes - identifier: fill title: Fill rectangle description: > Determines whether the image will be scaled up to fill the rectangle. Otherwise, if the B frame image fits within the rectangle, it will not be scaled. If 0, and the B frame image exceeds the rectangle, then it is scaled down to fit within the rectangle. type: boolean default: 1 mutable: yes widget: checkbox - identifier: halign title: Horizontal alignment description: > Set the horizontal alignment within the rectangle. type: string default: left values: - left - center - right mutable: yes widget: combo - identifier: valign title: Vertical alignment description: > Set the vertical alignment within the rectangle. type: string default: top values: - top - middle - bottom mutable: yes widget: combo - identifier: threads title: Thread count description: > Use 0 to use the slice count, which defaults to the number of detected CPUs. Otherwise, set the number of threads to use up to the slice count. minimum: 0 default: 0 - identifier: rect title: Rectangle description: > This specifies the size and position of the image. The format of this is "X/Y:WxH[:opacity]" and can be animated with key frames. If you use percentages you must use them for every field in the above format. For example, you cannot mix and match usage of absolute coordinates and percentages for size and opacity. type: rect default: "0%/0%:100%x100%:100%" readonly: no mutable: yes animation: yes - identifier: b_scaled title: Do not use full resolution of B frame type: boolean default: 0 mutable: yes