refs #684
This commit is contained in:
parent
c90e31cdeb
commit
8315d6eee1
|
@ -359,6 +359,10 @@
|
|||
BC4C9EAF23F2E736004A14F2 /* AudioStreamBasicDescription+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC4C9EAE23F2E736004A14F2 /* AudioStreamBasicDescription+Extension.swift */; };
|
||||
BC4C9EB023F2E736004A14F2 /* AudioStreamBasicDescription+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC4C9EAE23F2E736004A14F2 /* AudioStreamBasicDescription+Extension.swift */; };
|
||||
BC4C9EB123F2E736004A14F2 /* AudioStreamBasicDescription+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC4C9EAE23F2E736004A14F2 /* AudioStreamBasicDescription+Extension.swift */; };
|
||||
BC4DAEB12479851D005EFD57 /* FilenameUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC4DAEB02479851D005EFD57 /* FilenameUtil.swift */; };
|
||||
BC4DAEB22479851D005EFD57 /* FilenameUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC4DAEB02479851D005EFD57 /* FilenameUtil.swift */; };
|
||||
BC4DAEB32479851D005EFD57 /* FilenameUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC4DAEB02479851D005EFD57 /* FilenameUtil.swift */; };
|
||||
BC4DAEB524798ABE005EFD57 /* FilenameUtilTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC4DAEB424798ABE005EFD57 /* FilenameUtilTests.swift */; };
|
||||
BC558268240BB40E00011AC0 /* RTMPStreamInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC558267240BB40E00011AC0 /* RTMPStreamInfo.swift */; };
|
||||
BC558269240BB40E00011AC0 /* RTMPStreamInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC558267240BB40E00011AC0 /* RTMPStreamInfo.swift */; };
|
||||
BC55826A240BB40E00011AC0 /* RTMPStreamInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC558267240BB40E00011AC0 /* RTMPStreamInfo.swift */; };
|
||||
|
@ -656,6 +660,8 @@
|
|||
29FD1B4F22FF13190095A0BE /* VTSessionPropertyKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VTSessionPropertyKey.swift; sourceTree = "<group>"; };
|
||||
BC44A1A823D31E92002D4297 /* AudioConverter.AudioBuffer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioConverter.AudioBuffer.swift; sourceTree = "<group>"; wrapsLines = 1; };
|
||||
BC4C9EAE23F2E736004A14F2 /* AudioStreamBasicDescription+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AudioStreamBasicDescription+Extension.swift"; sourceTree = "<group>"; };
|
||||
BC4DAEB02479851D005EFD57 /* FilenameUtil.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilenameUtil.swift; sourceTree = "<group>"; };
|
||||
BC4DAEB424798ABE005EFD57 /* FilenameUtilTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilenameUtilTests.swift; sourceTree = "<group>"; };
|
||||
BC558267240BB40E00011AC0 /* RTMPStreamInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RTMPStreamInfo.swift; sourceTree = "<group>"; };
|
||||
BC83A4722403D83B006BDE06 /* VTCompressionSession+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "VTCompressionSession+Extension.swift"; sourceTree = "<group>"; };
|
||||
BC9CFA9223BDE8B700917EEF /* NetStreamRenderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetStreamRenderer.swift; sourceTree = "<group>"; };
|
||||
|
@ -768,6 +774,7 @@
|
|||
2976A4851D4903C300B53EF2 /* DeviceUtil.swift */,
|
||||
2901A4ED1D437170002BBD23 /* DisplayLinkedQueue.swift */,
|
||||
29B876BA1CD70B3900FC07DA /* EventDispatcher.swift */,
|
||||
BC4DAEB02479851D005EFD57 /* FilenameUtil.swift */,
|
||||
2926A9EB1DE6B71D0074E3D2 /* MachUtil.swift */,
|
||||
2942424C1CF4C01300D65DCB /* MD5.swift */,
|
||||
2942A4F721A9418A004E1BEE /* Running.swift */,
|
||||
|
@ -811,6 +818,7 @@
|
|||
2940EF4E2380116500430456 /* CircularBufferTests.swift */,
|
||||
290EA8A51DFB61E700053022 /* CRC32Tests.swift */,
|
||||
290EA8A61DFB61E700053022 /* EventDispatcherTests.swift */,
|
||||
BC4DAEB424798ABE005EFD57 /* FilenameUtilTests.swift */,
|
||||
290EA8A71DFB61E700053022 /* MD5Tests.swift */,
|
||||
29F97F232336A4FA00A4C317 /* SettingTests.swift */,
|
||||
290EA8A81DFB61E700053022 /* TimerDriverTests.swift */,
|
||||
|
@ -1656,6 +1664,7 @@
|
|||
BC558268240BB40E00011AC0 /* RTMPStreamInfo.swift in Sources */,
|
||||
298BCF331DD4C44A007FF86A /* AnyUtil.swift in Sources */,
|
||||
29B876B01CD70B2800FC07DA /* RTMPConnection.swift in Sources */,
|
||||
BC4DAEB12479851D005EFD57 /* FilenameUtil.swift in Sources */,
|
||||
295891221EEB8EC500CE51E1 /* FLVAVCPacketType.swift in Sources */,
|
||||
29B876B61CD70B2800FC07DA /* RTMPStream.swift in Sources */,
|
||||
29EA87EA1E79A3B70043A5F8 /* CMBlockBuffer+Extension.swift in Sources */,
|
||||
|
@ -1742,6 +1751,7 @@
|
|||
290EA8931DFB617800053022 /* HTTPRequestTests.swift in Sources */,
|
||||
2976077F20A89FBB00DCF24F /* RTMPMessageTests.swift in Sources */,
|
||||
290EA8A11DFB61B100053022 /* RTMPChunkTests.swift in Sources */,
|
||||
BC4DAEB524798ABE005EFD57 /* FilenameUtilTests.swift in Sources */,
|
||||
290EA89F1DFB61B100053022 /* AMF0SerializerTests.swift in Sources */,
|
||||
290EA8AA1DFB61E700053022 /* CRC32Tests.swift in Sources */,
|
||||
035AFA042263868E009DD0BB /* RTMPStreamTests.swift in Sources */,
|
||||
|
@ -1763,6 +1773,7 @@
|
|||
2943ED54232FCA7C00ED6301 /* Setting.swift in Sources */,
|
||||
292AC17C1CF4C871004F5730 /* MD5.swift in Sources */,
|
||||
2958910B1EEB8D1800CE51E1 /* FLVReader.swift in Sources */,
|
||||
BC4DAEB22479851D005EFD57 /* FilenameUtil.swift in Sources */,
|
||||
295747921E3A30A400EF056E /* RTMPStreamDelegate.swift in Sources */,
|
||||
29B876F41CD70D5900FC07DA /* DataConvertible.swift in Sources */,
|
||||
2916196D1E7F0777009FB344 /* CMFormatDescription+Extension.swift in Sources */,
|
||||
|
@ -1958,6 +1969,7 @@
|
|||
29EB3E171ED05893001CAE8B /* NetClient.swift in Sources */,
|
||||
BC4C9EB123F2E736004A14F2 /* AudioStreamBasicDescription+Extension.swift in Sources */,
|
||||
2958912C1EEB8F1D00CE51E1 /* FLVSoundSize.swift in Sources */,
|
||||
BC4DAEB32479851D005EFD57 /* FilenameUtil.swift in Sources */,
|
||||
295891241EEB8EC500CE51E1 /* FLVAVCPacketType.swift in Sources */,
|
||||
299D6A532051A9920090E10A /* MTHKView-tvOS.swift in Sources */,
|
||||
2943ED55232FCA7C00ED6301 /* Setting.swift in Sources */,
|
||||
|
|
|
@ -299,7 +299,7 @@ open class RTMPStream: NetStream {
|
|||
mixer.videoIO.encoder.startRunning()
|
||||
sampler?.startRunning()
|
||||
if howToPublish == .localRecord {
|
||||
mixer.recorder.fileName = info.resourceName
|
||||
mixer.recorder.fileName = FilenameUtil.fileName(resourceName: info.resourceName)
|
||||
mixer.recorder.startRunning()
|
||||
}
|
||||
default:
|
||||
|
@ -424,7 +424,7 @@ open class RTMPStream: NetStream {
|
|||
if self.info.resourceName == name && self.readyState == .publishing {
|
||||
switch type {
|
||||
case .localRecord:
|
||||
self.mixer.recorder.fileName = self.info.resourceName
|
||||
self.mixer.recorder.fileName = FilenameUtil.fileName(resourceName: self.info.resourceName)
|
||||
self.mixer.recorder.startRunning()
|
||||
default:
|
||||
self.mixer.recorder.stopRunning()
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
import Foundation
|
||||
|
||||
struct FilenameUtil {
|
||||
static func fileName(resourceName: String?) -> String? {
|
||||
guard var result = resourceName else {
|
||||
return nil
|
||||
}
|
||||
if let value = result.split(separator: "?").first {
|
||||
result = String(value)
|
||||
}
|
||||
if let value = result.split(separator: "/").last {
|
||||
result = String(value)
|
||||
}
|
||||
if result.count < Int(FILENAME_MAX) {
|
||||
return result
|
||||
}
|
||||
return String(result[..<result.index(result.startIndex, offsetBy: Int(FILENAME_MAX))])
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
import Foundation
|
||||
import XCTest
|
||||
|
||||
@testable import HaishinKit
|
||||
|
||||
final class FilenameUtilTest: XCTestCase {
|
||||
func testMain() {
|
||||
print(FILENAME_MAX)
|
||||
XCTAssertEqual("bar", FilenameUtil.fileName(resourceName: "/foo/bar?hogehoge"))
|
||||
XCTAssertEqual("hoge", FilenameUtil.fileName(resourceName: "hoge?foobar"))
|
||||
XCTAssertEqual(
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ",
|
||||
FilenameUtil.fileName(resourceName: "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOP")
|
||||
)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue