Skip to content

Instantly share code, notes, and snippets.

@gbarcena
Created July 7, 2017 19:21
Show Gist options
  • Save gbarcena/a8339f20e3e9950b12916a4e865cc1e4 to your computer and use it in GitHub Desktop.
Save gbarcena/a8339f20e3e9950b12916a4e865cc1e4 to your computer and use it in GitHub Desktop.
Correcting the transform on a video for AVExportSession
let preferredTransform = originalVideoTrack.preferredTransform
let finalTransform: CGAffineTransform
// These if statements were added to handle time lapse videos which use abcd for transforms
// and not tx, ty
if preferredTransform.a == -1 && preferredTransform.d == -1 {
transform = transform.scaledBy(x: -1, y: -1)
finalTransform = transform.translatedBy(x: -outputVideoSize.width, y: -outputVideoSize.height)
} else if preferredTransform.b == 1 && preferredTransform.c == -1 {
transform = transform.rotated(by: CGFloat.pi/2)
finalTransform = transform.translatedBy(x: 0, y: -outputVideoSize.width)
} else if preferredTransform.b == -1 && preferredTransform.c == 1 {
transform = transform.rotated(by: -CGFloat.pi/2)
finalTransform = transform.translatedBy(x: -outputVideoSize.height, y: 0)
} else {
finalTransform = preferredTransform.concatenating(transform)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment