rename AACEncoder -> AudioConverter

This commit is contained in:
shogo4405 2018-12-09 21:25:55 +09:00
parent bb8c4dc57d
commit 106dac5409
10 changed files with 49 additions and 48 deletions

View File

@ -75,7 +75,7 @@
294637A81EC89BC9008EEC71 /* Config.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294637A71EC89BC9008EEC71 /* Config.swift */; };
294637AA1EC8A79F008EEC71 /* SampleVideo_360x240_5mb.flv in Resources */ = {isa = PBXBuildFile; fileRef = 294637A91EC8A79F008EEC71 /* SampleVideo_360x240_5mb.flv */; };
294852571D852499002DE492 /* RTMPTSocket.swift in Sources */ = {isa = PBXBuildFile; fileRef = 294852551D84BFAD002DE492 /* RTMPTSocket.swift */; };
295018201FFA1BD700358E10 /* AACEncoderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2950181F1FFA1BD700358E10 /* AACEncoderTests.swift */; };
295018201FFA1BD700358E10 /* AudioConverterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2950181F1FFA1BD700358E10 /* AudioConverterTests.swift */; };
295018221FFA1C9D00358E10 /* SinWaveUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 295018211FFA1C9D00358E10 /* SinWaveUtil.swift */; };
295074301E4620FF007F15A4 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 29205CBD1E461F4E009D3FFF /* Main.storyboard */; };
295074311E462105007F15A4 /* PreferenceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2950742E1E4620B7007F15A4 /* PreferenceViewController.swift */; };
@ -153,7 +153,7 @@
29A39C8E1D85BF6F007C27E9 /* BroadcastViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A39C831D85BF21007C27E9 /* BroadcastViewController.swift */; };
29AF3FCF1D7C744C00E41212 /* NetStream.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29AF3FCE1D7C744C00E41212 /* NetStream.swift */; };
29AF3FD01D7C745200E41212 /* NetStream.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29AF3FCE1D7C744C00E41212 /* NetStream.swift */; };
29B8765B1CD70A7900FC07DA /* AACEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876571CD70A7900FC07DA /* AACEncoder.swift */; };
29B8765B1CD70A7900FC07DA /* AudioConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876571CD70A7900FC07DA /* AudioConverter.swift */; };
29B8765C1CD70A7900FC07DA /* H264Decoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876581CD70A7900FC07DA /* H264Decoder.swift */; };
29B8765D1CD70A7900FC07DA /* H264Encoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876591CD70A7900FC07DA /* H264Encoder.swift */; };
29B876691CD70AB300FC07DA /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876631CD70AB300FC07DA /* Constants.swift */; };
@ -191,7 +191,7 @@
29B876BC1CD70B3900FC07DA /* ByteArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876B81CD70B3900FC07DA /* ByteArray.swift */; };
29B876BD1CD70B3900FC07DA /* CRC32.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876B91CD70B3900FC07DA /* CRC32.swift */; };
29B876BE1CD70B3900FC07DA /* EventDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876BA1CD70B3900FC07DA /* EventDispatcher.swift */; };
29B876EC1CD70D5900FC07DA /* AACEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876571CD70A7900FC07DA /* AACEncoder.swift */; };
29B876EC1CD70D5900FC07DA /* AudioConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876571CD70A7900FC07DA /* AudioConverter.swift */; };
29B876ED1CD70D5900FC07DA /* H264Decoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876581CD70A7900FC07DA /* H264Decoder.swift */; };
29B876EE1CD70D5900FC07DA /* H264Encoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876591CD70A7900FC07DA /* H264Encoder.swift */; };
29B876F01CD70D5900FC07DA /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876631CD70AB300FC07DA /* Constants.swift */; };
@ -270,7 +270,7 @@
29EB3DEA1ED055AC001CAE8B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 29D3D5021ED053C000DD4AA6 /* Main.storyboard */; };
29EB3DEB1ED055B0001CAE8B /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D3D5051ED053C000DD4AA6 /* ViewController.swift */; };
29EB3DED1ED055B4001CAE8B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 29D3D5001ED053C000DD4AA6 /* Assets.xcassets */; };
29EB3DEE1ED05763001CAE8B /* AACEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876571CD70A7900FC07DA /* AACEncoder.swift */; };
29EB3DEE1ED05763001CAE8B /* AudioConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876571CD70A7900FC07DA /* AudioConverter.swift */; };
29EB3DEF1ED05766001CAE8B /* H264Decoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876581CD70A7900FC07DA /* H264Decoder.swift */; };
29EB3DF01ED05768001CAE8B /* H264Encoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876591CD70A7900FC07DA /* H264Encoder.swift */; };
29EB3DF11ED0576C001CAE8B /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B876631CD70AB300FC07DA /* Constants.swift */; };
@ -502,7 +502,7 @@
294637A71EC89BC9008EEC71 /* Config.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Config.swift; sourceTree = "<group>"; };
294637A91EC8A79F008EEC71 /* SampleVideo_360x240_5mb.flv */ = {isa = PBXFileReference; lastKnownFileType = file; path = SampleVideo_360x240_5mb.flv; sourceTree = "<group>"; };
294852551D84BFAD002DE492 /* RTMPTSocket.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RTMPTSocket.swift; sourceTree = "<group>"; };
2950181F1FFA1BD700358E10 /* AACEncoderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AACEncoderTests.swift; sourceTree = "<group>"; };
2950181F1FFA1BD700358E10 /* AudioConverterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioConverterTests.swift; sourceTree = "<group>"; };
295018211FFA1C9D00358E10 /* SinWaveUtil.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SinWaveUtil.swift; sourceTree = "<group>"; };
2950742E1E4620B7007F15A4 /* PreferenceViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferenceViewController.swift; sourceTree = "<group>"; };
2957473B1E34F30300EF056E /* RTMPBroadcaster.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RTMPBroadcaster.swift; sourceTree = "<group>"; };
@ -559,7 +559,7 @@
29A39C881D85BF30007C27E9 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
29AF3FCE1D7C744C00E41212 /* NetStream.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetStream.swift; sourceTree = "<group>"; };
29B8761B1CD701F900FC07DA /* HaishinKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = HaishinKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
29B876571CD70A7900FC07DA /* AACEncoder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AACEncoder.swift; sourceTree = "<group>"; };
29B876571CD70A7900FC07DA /* AudioConverter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AudioConverter.swift; sourceTree = "<group>"; };
29B876581CD70A7900FC07DA /* H264Decoder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = H264Decoder.swift; sourceTree = "<group>"; };
29B876591CD70A7900FC07DA /* H264Encoder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = H264Encoder.swift; sourceTree = "<group>"; };
29B876631CD70AB300FC07DA /* Constants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; };
@ -729,7 +729,7 @@
290907CD1C3961AD00F2E80C /* Codec */ = {
isa = PBXGroup;
children = (
29B876571CD70A7900FC07DA /* AACEncoder.swift */,
29B876571CD70A7900FC07DA /* AudioConverter.swift */,
29B876581CD70A7900FC07DA /* H264Decoder.swift */,
29B876591CD70A7900FC07DA /* H264Encoder.swift */,
);
@ -875,7 +875,7 @@
295018191FFA196800358E10 /* Codec */ = {
isa = PBXGroup;
children = (
2950181F1FFA1BD700358E10 /* AACEncoderTests.swift */,
2950181F1FFA1BD700358E10 /* AudioConverterTests.swift */,
);
path = Codec;
sourceTree = "<group>";
@ -1683,7 +1683,7 @@
29EA87E61E79A2780043A5F8 /* CMAudioFormatDescription+Extension.swift in Sources */,
29B876B51CD70B2800FC07DA /* RTMPSocket.swift in Sources */,
29B876AB1CD70B2800FC07DA /* AMF0Serializer.swift in Sources */,
29B8765B1CD70A7900FC07DA /* AACEncoder.swift in Sources */,
29B8765B1CD70A7900FC07DA /* AudioConverter.swift in Sources */,
29EA87D51E799F670043A5F8 /* Mirror+Extension.swift in Sources */,
2942A4F821A9418A004E1BEE /* Running.swift in Sources */,
29F6F4851DFB83E200920A3A /* RTMPHandshake.swift in Sources */,
@ -1739,7 +1739,7 @@
295018221FFA1C9D00358E10 /* SinWaveUtil.swift in Sources */,
294637A81EC89BC9008EEC71 /* Config.swift in Sources */,
290EA8981DFB619600053022 /* MP4SamplerTests.swift in Sources */,
295018201FFA1BD700358E10 /* AACEncoderTests.swift in Sources */,
295018201FFA1BD700358E10 /* AudioConverterTests.swift in Sources */,
290EA8AC1DFB61E700053022 /* MD5Tests.swift in Sources */,
290EA8A01DFB61B100053022 /* ASClassTests.swift in Sources */,
2917CB662104CA2800F6823A /* AudioSpecificConfigTests.swift in Sources */,
@ -1762,7 +1762,7 @@
buildActionMask = 2147483647;
files = (
296543601D62FE6A00734698 /* AudioUtil.swift in Sources */,
29B876EC1CD70D5900FC07DA /* AACEncoder.swift in Sources */,
29B876EC1CD70D5900FC07DA /* AudioConverter.swift in Sources */,
29B876ED1CD70D5900FC07DA /* H264Decoder.swift in Sources */,
29B876EE1CD70D5900FC07DA /* H264Encoder.swift in Sources */,
29EA87EB1E79A3B70043A5F8 /* CMBlockBuffer+Extension.swift in Sources */,
@ -1937,7 +1937,7 @@
29D80682204828D000F4504D /* VTSession+Extension.swift in Sources */,
29EB3E311ED05A29001CAE8B /* AnyUtil.swift in Sources */,
29EB3E1C1ED058A2001CAE8B /* AMF3Serializer.swift in Sources */,
29EB3DEE1ED05763001CAE8B /* AACEncoder.swift in Sources */,
29EB3DEE1ED05763001CAE8B /* AudioConverter.swift in Sources */,
29EB3E241ED05A02001CAE8B /* RTMPSharedObject.swift in Sources */,
29EB3E231ED059FF001CAE8B /* RTMPMuxer.swift in Sources */,
29EB3DF11ED0576C001CAE8B /* Constants.swift in Sources */,

View File

@ -1,6 +1,6 @@
import AVFoundation
protocol AudioEncoderDelegate: class {
protocol AudioConverterDelegate: class {
func didSetFormatDescription(audio formatDescription: CMFormatDescription?)
func sampleOutput(audio bytes: UnsafePointer<UInt8>?, count: UInt32, presentationTimeStamp: CMTime)
}
@ -10,7 +10,7 @@ protocol AudioEncoderDelegate: class {
- seealse:
- https://developer.apple.com/library/ios/technotes/tn2236/_index.html
*/
final class AACEncoder: NSObject {
final class AudioConverter: NSObject {
enum Error: Swift.Error {
case setPropertyError(id: AudioConverterPropertyID, status: OSStatus)
}
@ -46,7 +46,7 @@ final class AACEncoder: NSObject {
@objc var muted: Bool = false
@objc var bitrate: UInt32 = AACEncoder.defaultBitrate {
@objc var bitrate: UInt32 = AudioConverter.defaultBitrate {
didSet {
guard bitrate != oldValue else {
return
@ -58,16 +58,16 @@ final class AACEncoder: NSObject {
}
}
}
@objc var profile: UInt32 = AACEncoder.defaultProfile
@objc var sampleRate: Double = AACEncoder.defaultSampleRate
@objc var actualBitrate: UInt32 = AACEncoder.defaultBitrate {
@objc var profile: UInt32 = AudioConverter.defaultProfile
@objc var sampleRate: Double = AudioConverter.defaultSampleRate
@objc var actualBitrate: UInt32 = AudioConverter.defaultBitrate {
didSet {
logger.info("\(actualBitrate)")
}
}
var channels: UInt32 = AACEncoder.defaultChannels
var inClassDescriptions: [AudioClassDescription] = AACEncoder.defaultInClassDescriptions
var channels: UInt32 = AudioConverter.defaultChannels
var inClassDescriptions: [AudioClassDescription] = AudioConverter.defaultInClassDescriptions
var formatDescription: CMFormatDescription? {
didSet {
if !CMFormatDescriptionEqual(formatDescription, otherFormatDescription: oldValue) {
@ -75,11 +75,11 @@ final class AACEncoder: NSObject {
}
}
}
var lockQueue = DispatchQueue(label: "com.haishinkit.HaishinKit.AACEncoder.lock")
weak var delegate: AudioEncoderDelegate?
var lockQueue = DispatchQueue(label: "com.haishinkit.HaishinKit.AudioConverter.lock")
weak var delegate: AudioConverterDelegate?
internal(set) var isRunning: Bool = false
private var maximumBuffers: Int = AACEncoder.defaultMaximumBuffers
private var bufferListSize: Int = AACEncoder.defaultBufferListSize
private var maximumBuffers: Int = AudioConverter.defaultMaximumBuffers
private var bufferListSize: Int = AudioConverter.defaultBufferListSize
private var currentBufferList: UnsafeMutableAudioBufferListPointer?
private var inSourceFormat: AudioStreamBasicDescription? {
didSet {
@ -88,8 +88,8 @@ final class AACEncoder: NSObject {
return
}
let nonInterleaved: Bool = inSourceFormat.mFormatFlags & kAudioFormatFlagIsNonInterleaved != 0
maximumBuffers = nonInterleaved ? Int(inSourceFormat.mChannelsPerFrame) : AACEncoder.defaultMaximumBuffers
bufferListSize = nonInterleaved ? AudioBufferList.sizeInBytes(maximumBuffers: maximumBuffers) : AACEncoder.defaultBufferListSize
maximumBuffers = nonInterleaved ? Int(inSourceFormat.mChannelsPerFrame) : AudioConverter.defaultMaximumBuffers
bufferListSize = nonInterleaved ? AudioBufferList.sizeInBytes(maximumBuffers: maximumBuffers) : AudioConverter.defaultBufferListSize
}
}
private var _inDestinationFormat: AudioStreamBasicDescription?
@ -101,7 +101,7 @@ final class AACEncoder: NSObject {
mFormatID: kAudioFormatMPEG4AAC,
mFormatFlags: profile,
mBytesPerPacket: 0,
mFramesPerPacket: AACEncoder.framesPerPacket,
mFramesPerPacket: AudioConverter.framesPerPacket,
mBytesPerFrame: 0,
mChannelsPerFrame: (channels == 0) ? inSourceFormat!.mChannelsPerFrame : channels,
mBitsPerChannel: 0,
@ -124,7 +124,7 @@ final class AACEncoder: NSObject {
ioData: UnsafeMutablePointer<AudioBufferList>,
outDataPacketDescription: UnsafeMutablePointer<UnsafeMutablePointer<AudioStreamPacketDescription>?>?,
inUserData: UnsafeMutableRawPointer?) in
return Unmanaged<AACEncoder>.fromOpaque(inUserData!).takeUnretainedValue().onInputDataForAudioConverter(
return Unmanaged<AudioConverter>.fromOpaque(inUserData!).takeUnretainedValue().onInputDataForAudioConverter(
ioNumberDataPackets,
ioData: ioData,
outDataPacketDescription: outDataPacketDescription
@ -258,10 +258,10 @@ final class AACEncoder: NSObject {
try setProperty(id: kAudioConverterEncodeBitRate, data: bitrate * inDestinationFormat.mChannelsPerFrame)
actualBitrate = bitrate
} catch {
if AACEncoder.minimumBitrate < bitrate {
setBitrateUntilNoErr(bitrate - AACEncoder.minimumBitrate)
if AudioConverter.minimumBitrate < bitrate {
setBitrateUntilNoErr(bitrate - AudioConverter.minimumBitrate)
} else {
actualBitrate = AACEncoder.minimumBitrate
actualBitrate = AudioConverter.minimumBitrate
}
}
}
@ -279,7 +279,7 @@ final class AACEncoder: NSObject {
}
}
extension AACEncoder: Running {
extension AudioConverter: Running {
// MARK: Running
func startRunning() {
lockQueue.async {

View File

@ -130,6 +130,7 @@ struct PacketizedElementaryStream: PESPacketHeader {
static let untilPacketLengthSize: Int = 6
static let startCode: Data = Data([0x00, 0x00, 0x01])
// swiftlint:disable function_parameter_count
static func create(_ bytes: UnsafePointer<UInt8>?, count: UInt32, presentationTimeStamp: CMTime, decodeTimeStamp: CMTime, timestamp: CMTime, config: Any?, randomAccessIndicator: Bool) -> PacketizedElementaryStream? {
if let config: AudioSpecificConfig = config as? AudioSpecificConfig {
return PacketizedElementaryStream(bytes: bytes, count: count, presentationTimeStamp: presentationTimeStamp, decodeTimeStamp: decodeTimeStamp, timestamp: timestamp, config: config)

View File

@ -188,8 +188,8 @@ public class TSWriter: Running {
}
}
extension TSWriter: AudioEncoderDelegate {
// MARK: AudioEncoderDelegate
extension TSWriter: AudioConverterDelegate {
// MARK: AudioConverterDelegate
func didSetFormatDescription(audio formatDescription: CMFormatDescription?) {
guard let formatDescription: CMAudioFormatDescription = formatDescription else {
return

View File

@ -90,7 +90,7 @@ extension AVMixer {
final public func startEncoding(delegate: Any) {
videoIO.encoder.delegate = delegate as? VideoEncoderDelegate
videoIO.encoder.startRunning()
audioIO.encoder.delegate = delegate as? AudioEncoderDelegate
audioIO.encoder.delegate = delegate as? AudioConverterDelegate
audioIO.encoder.startRunning()
}

View File

@ -1,7 +1,7 @@
import AVFoundation
final class AudioIOComponent: IOComponent {
lazy var encoder: AACEncoder = AACEncoder()
lazy var encoder: AudioConverter = AudioConverter()
lazy var playback: AudioStreamPlayback = AudioStreamPlayback()
let lockQueue = DispatchQueue(label: "com.haishinkit.HaishinKit.AudioIOComponent.lock")

View File

@ -73,7 +73,7 @@ open class NetStream: NSObject {
get {
var audioSettings: [String: Any]!
ensureLockQueue {
audioSettings = self.mixer.audioIO.encoder.dictionaryWithValues(forKeys: AACEncoder.supportedSettingsKeys)
audioSettings = self.mixer.audioIO.encoder.dictionaryWithValues(forKeys: AudioConverter.supportedSettingsKeys)
}
return audioSettings
}

View File

@ -22,8 +22,8 @@ final class RTMPMuxer {
}
}
extension RTMPMuxer: AudioEncoderDelegate {
// MARK: AudioEncoderDelegate
extension RTMPMuxer: AudioConverterDelegate {
// MARK: AudioConverterDelegate
func didSetFormatDescription(audio formatDescription: CMFormatDescription?) {
guard let formatDescription: CMFormatDescription = formatDescription else {
return

View File

@ -215,7 +215,7 @@ open class RTMPStream: NetStream {
}
static let defaultID: UInt32 = 0
public static let defaultAudioBitrate: UInt32 = AACEncoder.defaultBitrate
public static let defaultAudioBitrate: UInt32 = AudioConverter.defaultBitrate
public static let defaultVideoBitrate: UInt32 = H264Encoder.defaultBitrate
weak open var delegate: RTMPStreamDelegate?
open internal(set) var info: RTMPStreamInfo = RTMPStreamInfo()

View File

@ -4,9 +4,9 @@ import AVFoundation
@testable import HaishinKit
final class AACEncoderTests: XCTestCase {
final class AudioConverterTests: XCTestCase {
func testEncoderCMSampleBuffer44100_1024() {
let encoder: AACEncoder = AACEncoder()
let encoder: AudioConverter = AudioConverter()
encoder.startRunning()
for _ in 0..<10 {
if let sampleBuffer: CMSampleBuffer = SinWaveUtil.createCMSampleBuffer(44100, numSamples: 1024) {
@ -16,7 +16,7 @@ final class AACEncoderTests: XCTestCase {
}
func testEncoderCMSampleBuffer48000_1024() {
let encoder: AACEncoder = AACEncoder()
let encoder: AudioConverter = AudioConverter()
encoder.startRunning()
for _ in 0..<10 {
if let sampleBuffer: CMSampleBuffer = SinWaveUtil.createCMSampleBuffer(48000.0, numSamples: 1024) {
@ -26,7 +26,7 @@ final class AACEncoderTests: XCTestCase {
}
func testEncoderCMSampleBuffer24000_1024() {
let encoder: AACEncoder = AACEncoder()
let encoder: AudioConverter = AudioConverter()
encoder.startRunning()
for _ in 0..<10 {
if let sampleBuffer: CMSampleBuffer = SinWaveUtil.createCMSampleBuffer(24000.0, numSamples: 1024) {
@ -36,7 +36,7 @@ final class AACEncoderTests: XCTestCase {
}
func testEncoderCMSampleBuffer16000_1024() {
let encoder: AACEncoder = AACEncoder()
let encoder: AudioConverter = AudioConverter()
encoder.startRunning()
for _ in 0..<10 {
if let sampleBuffer: CMSampleBuffer = SinWaveUtil.createCMSampleBuffer(16000.0, numSamples: 1024) {
@ -46,7 +46,7 @@ final class AACEncoderTests: XCTestCase {
}
func testEncoderCMSampleBuffer8000_256() {
let encoder: AACEncoder = AACEncoder()
let encoder: AudioConverter = AudioConverter()
encoder.delegate = self
encoder.startRunning()
for _ in 0..<10 {
@ -57,8 +57,8 @@ final class AACEncoderTests: XCTestCase {
}
}
extension AACEncoderTests: AudioEncoderDelegate {
// MARK: AudioEncoderDelegate
extension AudioConverterTests: AudioConverterDelegate {
// MARK: AudioConverterDelegate
func sampleOutput(audio bytes: UnsafeMutablePointer<UInt8>?, count: UInt32, presentationTimeStamp: CMTime) {
}