Refactoring

This commit is contained in:
shogo4405 2019-08-04 16:17:22 +09:00
parent 54837bb2f9
commit fe822d0c85
2 changed files with 35 additions and 28 deletions

View File

@ -24,10 +24,7 @@ final class ExampleRecorderDelegate: DefaultAVRecorderDelegate {
}
final class LiveViewController: UIViewController {
var rtmpConnection = RTMPConnection()
var rtmpStream: RTMPStream!
var sharedObject: RTMPSharedObject!
var currentEffect: VideoEffect?
private static let maxRetryCount: Int = 5
@IBOutlet private weak var lfView: GLHKView?
@IBOutlet private weak var currentFPSLabel: UILabel?
@ -41,7 +38,12 @@ final class LiveViewController: UIViewController {
@IBOutlet private weak var fpsControl: UISegmentedControl?
@IBOutlet private weak var effectSegmentControl: UISegmentedControl?
var currentPosition: AVCaptureDevice.Position = .back
private var rtmpConnection = RTMPConnection()
private var rtmpStream: RTMPStream!
private var sharedObject: RTMPSharedObject!
private var currentEffect: VideoEffect?
private var currentPosition: AVCaptureDevice.Position = .back
private var retryCount: Int = 0
override func viewDidLoad() {
super.viewDidLoad()
@ -139,16 +141,24 @@ final class LiveViewController: UIViewController {
}
@objc
func rtmpStatusHandler(_ notification: Notification) {
private func rtmpStatusHandler(_ notification: Notification) {
let e = Event.from(notification)
if let data: ASObject = e.data as? ASObject, let code: String = data["code"] as? String {
switch code {
case RTMPConnection.Code.connectSuccess.rawValue:
rtmpStream!.publish(Preference.defaultInstance.streamName!)
// sharedObject!.connect(rtmpConnection)
default:
break
guard let data: ASObject = e.data as? ASObject, let code: String = data["code"] as? String else {
return
}
switch code {
case RTMPConnection.Code.connectSuccess.rawValue:
retryCount = 0
rtmpStream!.publish(Preference.defaultInstance.streamName!)
// sharedObject!.connect(rtmpConnection)
case RTMPConnection.Code.connectFailed.rawValue, RTMPConnection.Code.connectClosed.rawValue:
guard retryCount <= LiveViewController.maxRetryCount else {
return
}
rtmpConnection.connect(Preference.defaultInstance.uri!)
retryCount += 1
default:
break
}
}

View File

@ -17,7 +17,7 @@ open class NetSocket: NSObject {
var outputStream: OutputStream?
var inputQueue = DispatchQueue(label: "com.haishinkit.HaishinKit.NetSocket.input")
private var buffer: UnsafeMutablePointer<UInt8>?
private var buffer = [UInt8](repeating: 0, count: 0)
private var runloop: RunLoop?
private let outputQueue = DispatchQueue(label: "com.haishinkit.HaishinKit.NetSocket.output")
private var timeoutHandler: (() -> Void)?
@ -53,6 +53,13 @@ open class NetSocket: NSObject {
return data.count
}
open func close() {
close(isDisconnected: false)
}
open func listen() {
}
final func doOutputFromURL(_ url: URL, length: Int) {
outputQueue.async {
do {
@ -109,16 +116,8 @@ open class NetSocket: NSObject {
}
}
open func close() {
close(isDisconnected: false)
}
open func listen() {
}
func initConnection() {
buffer = UnsafeMutablePointer<UInt8>.allocate(capacity: windowSizeC)
buffer?.initialize(repeating: 0, count: windowSizeC)
buffer = [UInt8](repeating: 0, count: windowSizeC)
totalBytesIn = 0
totalBytesOut = 0
@ -165,19 +164,17 @@ open class NetSocket: NSObject {
outputStream?.remove(from: runloop!, forMode: .default)
outputStream?.delegate = nil
outputStream = nil
buffer?.deinitialize(count: windowSizeC)
buffer?.deallocate()
buffer = nil
buffer.removeAll()
}
func didTimeout() {
}
private func doInput() {
guard let inputStream: InputStream = inputStream, let buffer: UnsafeMutablePointer<UInt8> = buffer else {
guard let inputStream: InputStream = inputStream else {
return
}
let length: Int = inputStream.read(buffer, maxLength: windowSizeC)
let length: Int = inputStream.read(&buffer, maxLength: windowSizeC)
if 0 < length {
totalBytesIn += Int64(length)
inputBuffer.append(buffer, count: length)