From d25f233bcc1ee5c2fd6444d955533a00bdbad43e Mon Sep 17 00:00:00 2001 From: shogo4405 Date: Sat, 24 Nov 2018 21:22:36 +0900 Subject: [PATCH] add TSWriterDelegate --- Sources/Codec/AACEncoder.swift | 2 +- Sources/Codec/H264Encoder.swift | 2 +- Sources/HTTP/M3U.swift | 2 +- Sources/ISO/ProgramSpecific.swift | 2 +- Sources/ISO/TSWriter.swift | 8 +++++++- Sources/ISO/TransportStream.swift | 2 +- Sources/Net/NetStream.swift | 4 +++- Sources/Util/Constants.swift | 4 ---- Sources/Util/MD5.swift | 4 ++-- 9 files changed, 17 insertions(+), 13 deletions(-) diff --git a/Sources/Codec/AACEncoder.swift b/Sources/Codec/AACEncoder.swift index 5afe284a..bf82ce76 100644 --- a/Sources/Codec/AACEncoder.swift +++ b/Sources/Codec/AACEncoder.swift @@ -8,7 +8,7 @@ protocol AudioEncoderDelegate: class { // MARK: - /** - seealse: - - https: //developer.apple.com/library/ios/technotes/tn2236/_index.html + - https://developer.apple.com/library/ios/technotes/tn2236/_index.html */ final class AACEncoder: NSObject { enum Error: Swift.Error { diff --git a/Sources/Codec/H264Encoder.swift b/Sources/Codec/H264Encoder.swift index b82fb605..442b55b7 100644 --- a/Sources/Codec/H264Encoder.swift +++ b/Sources/Codec/H264Encoder.swift @@ -154,7 +154,7 @@ final class H264Encoder: NSObject { private var invalidateSession: Bool = true private var lastImageBuffer: CVImageBuffer? - // @see: https: //developer.apple.com/library/mac/releasenotes/General/APIDiffsMacOSX10_8/VideoToolbox.html + // @see: https://developer.apple.com/library/mac/releasenotes/General/APIDiffsMacOSX10_8/VideoToolbox.html private var properties: [NSString: NSObject] { let isBaseline: Bool = profileLevel.contains("Baseline") var properties: [NSString: NSObject] = [ diff --git a/Sources/HTTP/M3U.swift b/Sources/HTTP/M3U.swift index 011b562a..3c8dcae3 100644 --- a/Sources/HTTP/M3U.swift +++ b/Sources/HTTP/M3U.swift @@ -1,5 +1,5 @@ /** - - seealso: https: //tools.ietf.org/html/draft-pantos-http-live-streaming-19 + - seealso: https://tools.ietf.org/html/draft-pantos-http-live-streaming-19 */ struct M3U { static let header: String = "#EXTM3U" diff --git a/Sources/ISO/ProgramSpecific.swift b/Sources/ISO/ProgramSpecific.swift index 536cf283..120a5016 100644 --- a/Sources/ISO/ProgramSpecific.swift +++ b/Sources/ISO/ProgramSpecific.swift @@ -1,7 +1,7 @@ import Foundation /** - - seealso: https: //en.wikipedia.org/wiki/Program-specific_information + - seealso: https://en.wikipedia.org/wiki/Program-specific_information */ protocol PSIPointer { var pointerField: UInt8 { get set } diff --git a/Sources/ISO/TSWriter.swift b/Sources/ISO/TSWriter.swift index a3ac9c7e..0e1047a1 100644 --- a/Sources/ISO/TSWriter.swift +++ b/Sources/ISO/TSWriter.swift @@ -1,7 +1,8 @@ import CoreMedia import Foundation -protocol TSWriterDelegate: class { +public protocol TSWriterDelegate: class { + func didOutput(_ data: Data) } public class TSWriter { @@ -36,6 +37,8 @@ public class TSWriter { var segmentMaxCount: Int = TSWriter.defaultSegmentMaxCount var segmentDuration: Double = TSWriter.defaultSegmentDuration + public weak var delegate: TSWriterDelegate? + private(set) var PAT: ProgramAssociationSpecific = { let PAT: ProgramAssociationSpecific = ProgramAssociationSpecific() PAT.programs = [1: TSWriter.defaultPMTPID] @@ -92,6 +95,7 @@ public class TSWriter { } nstry({ + self.delegate?.didOutput(bytes) self.currentFileHandle?.write(bytes) }, { exception in self.currentFileHandle?.write(bytes) @@ -139,6 +143,7 @@ public class TSWriter { } nstry({ + self.delegate?.didOutput(bytes) self.currentFileHandle?.write(bytes) }, { exception in self.currentFileHandle?.write(bytes) @@ -224,6 +229,7 @@ public class TSWriter { } nstry({ + self.delegate?.didOutput(bytes) self.currentFileHandle?.write(bytes) }, { exception in logger.warn("\(exception)") diff --git a/Sources/ISO/TransportStream.swift b/Sources/ISO/TransportStream.swift index 71afd9e7..9795a36e 100644 --- a/Sources/ISO/TransportStream.swift +++ b/Sources/ISO/TransportStream.swift @@ -1,6 +1,6 @@ import AVFoundation /** - - seealso: https: //en.wikipedia.org/wiki/MPEG_transport_stream#Packet + - seealso: https://en.wikipedia.org/wiki/MPEG_transport_stream#Packet */ struct TSPacket { static let size: Int = 188 diff --git a/Sources/Net/NetStream.swift b/Sources/Net/NetStream.swift index 389323b1..cf206399 100644 --- a/Sources/Net/NetStream.swift +++ b/Sources/Net/NetStream.swift @@ -160,7 +160,7 @@ open class NetStream: NSObject { } #endif - open func appendSampleBuffer(_ sampleBuffer: CMSampleBuffer, withType: CMSampleBufferType, options: [NSObject: AnyObject]? = nil) { + open func appendSampleBuffer(_ sampleBuffer: CMSampleBuffer, withType: AVMediaType, options: [NSObject: AnyObject]? = nil) { switch withType { case .audio: mixer.audioIO.lockQueue.async { @@ -170,6 +170,8 @@ open class NetStream: NSObject { mixer.videoIO.lockQueue.async { self.mixer.videoIO.appendSampleBuffer(sampleBuffer) } + default: + break } } diff --git a/Sources/Util/Constants.swift b/Sources/Util/Constants.swift index 39aa7552..1316a8f1 100644 --- a/Sources/Util/Constants.swift +++ b/Sources/Util/Constants.swift @@ -2,7 +2,3 @@ import Logboard let logger: Logboard = Logboard.with(HaishinKitIdentifier) -public enum CMSampleBufferType: String { - case video - case audio -} diff --git a/Sources/Util/MD5.swift b/Sources/Util/MD5.swift index f9a4d4c6..5b63e1b2 100755 --- a/Sources/Util/MD5.swift +++ b/Sources/Util/MD5.swift @@ -4,8 +4,8 @@ import Foundation Message Digest Algorithm 5 - seealso: - - https: //ja.wikipedia.org/wiki/MD5 - - https: //www.ietf.org/rfc/rfc1321.txt + - https://ja.wikipedia.org/wiki/MD5 + - https://www.ietf.org/rfc/rfc1321.txt */ final class MD5 {