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,16 +185,19 @@ private final class VisualMediaItemNode: ASDisplayNode {
} }
if let file = media as? TelegramMediaFile, file.isAnimated { if let file = media as? TelegramMediaFile, file.isAnimated {
let sampleBufferLayer: SampleBufferLayer if self.videoLayerFrameManager == nil {
if let current = self.sampleBufferLayer { let sampleBufferLayer: SampleBufferLayer
sampleBufferLayer = current if let current = self.sampleBufferLayer {
} else { sampleBufferLayer = current
sampleBufferLayer = takeSampleBufferLayer() } else {
self.sampleBufferLayer = sampleBufferLayer sampleBufferLayer = takeSampleBufferLayer()
self.containerNode.layer.insertSublayer(sampleBufferLayer.layer, above: self.imageNode.layer) self.sampleBufferLayer = sampleBufferLayer
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?.start()
} }
self.videoLayerFrameManager = SoftwareVideoLayerFrameManager(account: self.context.account, fileReference: FileMediaReference.message(message: MessageReference(item.message), media: file), resource: file.resource, layerHolder: sampleBufferLayer)
self.videoLayerFrameManager?.start()
} else { } else {
self.videoLayerFrameManager = nil self.videoLayerFrameManager = nil
} }