Fix repeated video layer frame manager initialization

This commit is contained in:
Ali 2020-05-08 23:34:26 +04:00
parent 4ae748be68
commit 5decba577c

View File

@ -185,6 +185,7 @@ private final class VisualMediaItemNode: ASDisplayNode {
} }
if let file = media as? TelegramMediaFile, file.isAnimated { if let file = media as? TelegramMediaFile, file.isAnimated {
if self.videoLayerFrameManager == nil {
let sampleBufferLayer: SampleBufferLayer let sampleBufferLayer: SampleBufferLayer
if let current = self.sampleBufferLayer { if let current = self.sampleBufferLayer {
sampleBufferLayer = current sampleBufferLayer = current
@ -193,8 +194,10 @@ private final class VisualMediaItemNode: ASDisplayNode {
self.sampleBufferLayer = sampleBufferLayer self.sampleBufferLayer = sampleBufferLayer
self.containerNode.layer.insertSublayer(sampleBufferLayer.layer, above: self.imageNode.layer) self.containerNode.layer.insertSublayer(sampleBufferLayer.layer, above: self.imageNode.layer)
} }
self.videoLayerFrameManager = SoftwareVideoLayerFrameManager(account: self.context.account, fileReference: FileMediaReference.message(message: MessageReference(item.message), media: file), resource: file.resource, layerHolder: sampleBufferLayer) self.videoLayerFrameManager = SoftwareVideoLayerFrameManager(account: self.context.account, fileReference: FileMediaReference.message(message: MessageReference(item.message), media: file), resource: file.resource, layerHolder: sampleBufferLayer)
self.videoLayerFrameManager?.start() self.videoLayerFrameManager?.start()
}
} else { } else {
self.videoLayerFrameManager = nil self.videoLayerFrameManager = nil
} }