mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
32 lines
997 B
Swift
32 lines
997 B
Swift
import Foundation
|
|
import SwiftSignalKit
|
|
import CoreMedia
|
|
|
|
public enum MediaTrackEvent {
|
|
case frames([MediaTrackDecodableFrame])
|
|
case endOfStream
|
|
}
|
|
|
|
public final class MediaFrameSourceSeekResult {
|
|
public let buffers: MediaPlaybackBuffers
|
|
public let extraDecodedVideoFrames: [MediaTrackFrame]
|
|
public let timestamp: CMTime
|
|
|
|
public init(buffers: MediaPlaybackBuffers, extraDecodedVideoFrames: [MediaTrackFrame], timestamp: CMTime) {
|
|
self.buffers = buffers
|
|
self.extraDecodedVideoFrames = extraDecodedVideoFrames
|
|
self.timestamp = timestamp
|
|
}
|
|
}
|
|
|
|
public enum MediaFrameSourceSeekError {
|
|
case generic
|
|
}
|
|
|
|
public protocol MediaFrameSource {
|
|
func addEventSink(_ f: @escaping (MediaTrackEvent) -> Void) -> Int
|
|
func removeEventSink(_ index: Int)
|
|
func generateFrames(until timestamp: Double, types: [MediaTrackFrameType])
|
|
func seek(timestamp: Double) -> Signal<QueueLocalObject<MediaFrameSourceSeekResult>, MediaFrameSourceSeekError>
|
|
}
|