36 lines
850 B
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
|
|
}
|
|
}
|