Files
HaishinKit.swift/SRTHaishinKit/Sources/TS/ADTSReader.swift
2025-07-13 12:43:53 +09:00

36 lines
757 B
Swift

import Foundation
import HaishinKit
class ADTSReader: Sequence {
private var data: Data = .init()
func read(_ data: Data) {
self.data = data
}
func makeIterator() -> ADTSReaderIterator {
return ADTSReaderIterator(data: data)
}
}
struct ADTSReaderIterator: IteratorProtocol {
private let data: Data
private var cursor: Int = 0
private var header: ADTSHeader = .init()
init(data: Data) {
self.data = data
}
mutating func next() -> Int? {
guard cursor < data.count else {
return nil
}
header.data = data.advanced(by: cursor)
defer {
cursor += Int(header.aacFrameLength)
}
return Int(header.aacFrameLength)
}
}