import Foundation
import CoreMedia
import FFMpegBinding

public enum MediaTrackFrameType {
    case video
    case audio
}

public final class MediaTrackDecodableFrame {
    public let type: MediaTrackFrameType
    public let packet: FFMpegPacket
    public let pts: CMTime
    public let dts: CMTime
    public let duration: CMTime
    
    public init(type: MediaTrackFrameType, packet: FFMpegPacket, pts: CMTime, dts: CMTime, duration: CMTime) {
        self.type = type
        
        self.pts = pts
        self.dts = dts
        self.duration = duration
        
        self.packet = packet
    }
    
    public func copyPacketData() -> Data {
        return Data(bytes: self.packet.data, count: Int(self.packet.size))
    }
}