Add video animation support, update examples SimpleVideoAnimation SimpleVideoTransitionSwitch

This commit is contained in:
RenZhu Macro
2020-07-22 16:02:13 +08:00
parent 3929205637
commit bd7ee080bd
144 changed files with 10316 additions and 70 deletions
@@ -37,13 +37,17 @@ class ViewController: UIViewController {
let backgroundFrame = self.renderView.frame
let backgroundSize = CGSize(width: backgroundFrame.size.width * 1.5,
height: backgroundFrame.size.height * 1.5)
MetalVideoProcessBackground.canvasSize = backgroundSize
MetalVideoProcessBackground.canvasSize = backgroundSize
let transform1 = MetalVideoProcessTransformFilter()
let transform2 = MetalVideoProcessTransformFilter()
let transform3 = MetalVideoProcessTransformFilter()
let transform4 = MetalVideoProcessTransformFilter()
transform1.stretchType = .aspectToFit
transform1.roi = CGRect(x: 0.1, y: 0.1,
width: 0.8,
@@ -79,37 +83,49 @@ class ViewController: UIViewController {
player.addTarget(transform4, trackID: item4.trackID, targetTrackId: item4.trackID)
transform1.saveUniformSettings(forTimelineRange: item1.timeRange, trackID: item1.trackID)
//
transform2.saveUniformSettings(forTimelineRange: item2.timeRange, trackID: item2.trackID)
//
transform3.saveUniformSettings(forTimelineRange: item3.timeRange, trackID: item3.trackID)
//
transform4.saveUniformSettings(forTimelineRange: item4.timeRange, trackID: item4.trackID)
let layer1 = MetalVideoProcessBlendFilter()
background --> layer1
transform1 --> layer1
// layer1.saveUniformSettings(forTimelineRange: item1.timeRange, trackID: item1.trackID)
let layer2 = MetalVideoProcessBlendFilter()
layer1 --> layer2
transform2 --> layer2
//
// layer2.saveUniformSettings(forTimelineRange: item2.timeRange, trackID: item2.trackID)
//
let layer3 = MetalVideoProcessBlendFilter()
layer2 --> layer3
transform3 --> layer3
// layer3.saveUniformSettings(forTimelineRange: item3.timeRange, trackID: item3.trackID)
let layer4 = MetalVideoProcessBlendFilter()
layer3 --> layer4
transform4 --> layer4
// layer4.saveUniformSettings(forTimelineRange: item4.timeRange, trackID: item4.trackID)
//
self.progress.minimumValue = 0.0
self.progress.maximumValue = Float(playerItem.duration.seconds)
layer4 --> renderView
// layer3 --> self.renderView
// transform1 --> self.renderView
self.player = player
self.player?.playerDelegate = self