function WrapYV24(clip input, int "padding", bool "point", bool "yuy") { padding = Default(padding, 32) # Padding pixels point = Default(point, true) # Point upsample chroma yuy = Default(yuy, false) # Use YUY2 as wrapping colorspace instead of YV12 input.GreyScale().ConvertToYUY2() y = last input.UToY().ConvertToYUY2() u = last input.VToY().ConvertToYUY2() v = last y.ConvertToYUY2().TurnRight().Crop(0, 0, -0, 1) PointResize(y.height, padding).TurnLeft() yleft = last y.ConvertToYUY2().TurnRight().FlipHorizontal().Crop(0, 0, -0, 1) PointResize(y.height, padding).TurnLeft() yright = last u.ConvertToYUY2().TurnRight().Crop(0, 0, -0, 1) PointResize(y.height, padding).TurnLeft() uleft = last u.ConvertToYUY2().TurnRight().FlipHorizontal().Crop(0, 0, -0, 1) PointResize(y.height, padding).TurnLeft() uright = last v.ConvertToYUY2().TurnRight().Crop(0, 0, -0, 1) PointResize(y.height, padding).TurnLeft() vleft = last u.ConvertToYUY2().TurnRight().FlipHorizontal().Crop(0, 0, -0, 1) PointResize(y.height, padding).TurnLeft() vright = last u.PointResize(y.width, y.height) ubigpoint = last v.PointResize(y.width, y.height) vbigpoint = last u.LanczosResize(y.width, y.height) ubiglancz = last v.LanzosResize(y.width, y.height) vbiglancz = last vbig = point ? vbigpoint : vbiglancz ubig = point ? ubigpoint : ubiglancz one = StackHorizontal(yleft, y) two = StackHorizontal(one, yright) three = StackHorizontal(two, uleft) four = StackHorizontal(three, ubig) five = StackHorizontal(four, uright) six = StackHorizontal(five, vleft) seven = StackHorizontal(six, vbig) eight = StackHorizontal(seven, vright) return yuy ? eight : eight.ConvertToYV12() }