HaishinKit.swift/Sources/MPEG/AVCFormatStream.swift

36 lines
850 B
Swift

import Foundation
struct AVCFormatStream {
let data: Data
init(data: Data) {
self.data = data
}
init?(bytes: UnsafePointer<UInt8>, count: UInt32) {
self.init(data: Data(bytes: bytes, count: Int(count)))
}
init?(data: Data?) {
guard let data = data else {
return nil
}
self.init(data: data)
}
func toByteStream() -> Data {
let buffer = ByteArray(data: data)
var result = Data()
while 0 < buffer.bytesAvailable {
do {
let length: Int = try Int(buffer.readUInt32())
result.append(contentsOf: [0x00, 0x00, 0x00, 0x01])
result.append(try buffer.readBytes(length))
} catch {
logger.error("\(buffer)")
}
}
return result
}
}