From: liangzhenying <867174124@qq.com> Date: Fri, 21 Jun 2024 01:20:25 +0000 (+0800) Subject: 新增SBC转pcm X-Git-Tag: deepseek~29 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=8ba455cf85037af5c2f9465aed417e4d8798b33a;p=mirrors%2FMixSdk-iOS.git 新增SBC转pcm --- diff --git a/MixSdk/Example/Example.xcodeproj/project.pbxproj b/MixSdk/Example/Example.xcodeproj/project.pbxproj index 5e0df9b..15029be 100644 --- a/MixSdk/Example/Example.xcodeproj/project.pbxproj +++ b/MixSdk/Example/Example.xcodeproj/project.pbxproj @@ -25,6 +25,12 @@ 18B74A282C201F2500FABBA9 /* TranslateViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18B74A272C201F2500FABBA9 /* TranslateViewController.swift */; }; 18B74A2A2C201FF200FABBA9 /* AigcViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18B74A292C201FF200FABBA9 /* AigcViewController.swift */; }; 18C42B412C230A15000D8860 /* TtsFileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18C42B402C230A15000D8860 /* TtsFileViewController.swift */; }; + 18C42B592C24166D000D8860 /* input.msbc in Resources */ = {isa = PBXBuildFile; fileRef = 18C42B582C24166D000D8860 /* input.msbc */; }; + 18C42C802C242AAC000D8860 /* liblzma.5.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 18C42C7E2C242AAC000D8860 /* liblzma.5.tbd */; }; + 18C42C822C242AD3000D8860 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 18C42C812C242AD3000D8860 /* CoreAudio.framework */; }; + 18C42C842C242B01000D8860 /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 18C42C832C242B01000D8860 /* libiconv.tbd */; }; + 18C42C862C242B0B000D8860 /* libbz2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 18C42C852C242B0A000D8860 /* libbz2.tbd */; }; + 18C42C8A2C24344D000D8860 /* Sbc2PcmViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18C42C892C24344D000D8860 /* Sbc2PcmViewController.swift */; }; 18DB20482C213D730070D571 /* AiMouseAudioRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = 18DB20462C213D730070D571 /* AiMouseAudioRecord.m */; }; 18DB20492C213D730070D571 /* AiMouseRecordManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18DB20472C213D730070D571 /* AiMouseRecordManager.m */; }; F59940004E1C16053FBD42F5 /* Pods_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B555BC40ACD8F31DBCDD1A2 /* Pods_Example.framework */; }; @@ -61,6 +67,12 @@ 18B74A272C201F2500FABBA9 /* TranslateViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TranslateViewController.swift; sourceTree = ""; }; 18B74A292C201FF200FABBA9 /* AigcViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AigcViewController.swift; sourceTree = ""; }; 18C42B402C230A15000D8860 /* TtsFileViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TtsFileViewController.swift; sourceTree = ""; }; + 18C42B582C24166D000D8860 /* input.msbc */ = {isa = PBXFileReference; lastKnownFileType = file; name = input.msbc; path = ../../../../../../input.msbc; sourceTree = ""; }; + 18C42C7E2C242AAC000D8860 /* liblzma.5.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = liblzma.5.tbd; path = usr/lib/liblzma.5.tbd; sourceTree = SDKROOT; }; + 18C42C812C242AD3000D8860 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + 18C42C832C242B01000D8860 /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; }; + 18C42C852C242B0A000D8860 /* libbz2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libbz2.tbd; path = usr/lib/libbz2.tbd; sourceTree = SDKROOT; }; + 18C42C892C24344D000D8860 /* Sbc2PcmViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sbc2PcmViewController.swift; sourceTree = ""; }; 18DB20432C213D720070D571 /* Example-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Example-Bridging-Header.h"; sourceTree = ""; }; 18DB20442C213D730070D571 /* AiMouseRecordManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AiMouseRecordManager.h; sourceTree = ""; }; 18DB20452C213D730070D571 /* AiMouseAudioRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AiMouseAudioRecord.h; sourceTree = ""; }; @@ -76,6 +88,10 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 18C42C862C242B0B000D8860 /* libbz2.tbd in Frameworks */, + 18C42C842C242B01000D8860 /* libiconv.tbd in Frameworks */, + 18C42C822C242AD3000D8860 /* CoreAudio.framework in Frameworks */, + 18C42C802C242AAC000D8860 /* liblzma.5.tbd in Frameworks */, 18132AF82C1C4D15002F6B52 /* libz.tbd in Frameworks */, 18204BEE2C19428100F94E69 /* MixSdk.framework in Frameworks */, F59940004E1C16053FBD42F5 /* Pods_Example.framework in Frameworks */, @@ -88,6 +104,7 @@ 181188582C1BE80B00C23FAB /* Resource */ = { isa = PBXGroup; children = ( + 18C42B582C24166D000D8860 /* input.msbc */, 181188592C1BE80B00C23FAB /* 1.pcm */, ); path = Resource; @@ -129,6 +146,7 @@ 18B74A252C201EBD00FABBA9 /* ChatViewController.swift */, 18B74A272C201F2500FABBA9 /* TranslateViewController.swift */, 18B74A292C201FF200FABBA9 /* AigcViewController.swift */, + 18C42C892C24344D000D8860 /* Sbc2PcmViewController.swift */, 18204BD92C193F9A00F94E69 /* Main.storyboard */, 18204BDC2C193F9D00F94E69 /* Assets.xcassets */, 18204BDE2C193F9D00F94E69 /* LaunchScreen.storyboard */, @@ -148,6 +166,10 @@ 18204BED2C19428100F94E69 /* Frameworks */ = { isa = PBXGroup; children = ( + 18C42C852C242B0A000D8860 /* libbz2.tbd */, + 18C42C832C242B01000D8860 /* libiconv.tbd */, + 18C42C812C242AD3000D8860 /* CoreAudio.framework */, + 18C42C7E2C242AAC000D8860 /* liblzma.5.tbd */, 18132AF62C1C4D15002F6B52 /* libz.tbd */, 4B555BC40ACD8F31DBCDD1A2 /* Pods_Example.framework */, ); @@ -257,6 +279,7 @@ 18204BE02C193F9D00F94E69 /* LaunchScreen.storyboard in Resources */, 18204BDD2C193F9D00F94E69 /* Assets.xcassets in Resources */, 18204BDB2C193F9A00F94E69 /* Main.storyboard in Resources */, + 18C42B592C24166D000D8860 /* input.msbc in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -322,6 +345,7 @@ 18B74A2A2C201FF200FABBA9 /* AigcViewController.swift in Sources */, 184FFC512C21A4EB006F664D /* TtsLongViewController.swift in Sources */, 18C42B412C230A15000D8860 /* TtsFileViewController.swift in Sources */, + 18C42C8A2C24344D000D8860 /* Sbc2PcmViewController.swift in Sources */, 18B74A282C201F2500FABBA9 /* TranslateViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/MixSdk/Example/Example/Sbc2PcmViewController.swift b/MixSdk/Example/Example/Sbc2PcmViewController.swift new file mode 100644 index 0000000..aaa396b --- /dev/null +++ b/MixSdk/Example/Example/Sbc2PcmViewController.swift @@ -0,0 +1,102 @@ +// +// Sbc2PcmViewController.swift +// Example +// +// Created by incar on 2024/6/20. +// + +import UIKit +import MixSdk +import SnapKit +import Toast_Swift +class Sbc2PcmViewController: UIViewController{ + let textView = UITextView() + + override func viewDidLoad() { + super.viewDidLoad() + // Do any additional setup after loading the view. + setupViews() + setupSttCallBack() + } + func setupViews(){ + self.title = "sbc2pcm" + self.view.backgroundColor = .white + + let recordBtn = UIButton(type: .custom) + recordBtn.setTitle("start record", for: .normal) + recordBtn.setTitle("stop record", for: .selected) + recordBtn.setTitleColor(.white, for: .normal) + recordBtn.backgroundColor = .blue + recordBtn.addTarget(self, action: #selector(recordAction(button:)), for: .touchUpInside) + view.addSubview(recordBtn) + recordBtn.snp.makeConstraints { make in + make.width.centerX.equalToSuperview() + make.height.equalTo(60) + make.bottom.equalToSuperview().inset(20) + } + + textView.isEditable = false + view.addSubview(textView) + textView.snp.makeConstraints { make in + make.top.equalToSuperview().inset(80) + make.left.right.equalToSuperview() + make.bottom.equalTo(recordBtn.snp.top) + } + } + func setupSttCallBack(){ + MixSdk.shared.stt.eventCallBack = {[weak self] event in + guard let self = self else {return} + if event.event == "TranscriptionStarted" { + //2 + self.startTask() + } + else if event.event == "TranscriptionCompleted"{ + //6 + self.endTask() + } + else if event.event == "SentenceEnd",let text = event.result?.result{ + //4 + self.textView.text += text + "\n" + let range = NSMakeRange(textView.text.count - 1, 1) + self.textView.scrollRangeToVisible(range) + } + } + } +} + +extension Sbc2PcmViewController{ + @objc func recordAction(button:UIButton){ + button.isSelected = !button.isSelected + if button.isSelected { + //1 + MixSdk.shared.stt.startTranscription() + } + else{ + //5 + MixSdk.shared.stt.stopTranscription() + } + } + //3 + @objc func startTask(){ + guard let path = Bundle.main.path(forResource: "input", ofType: "msbc") else {return} + let data = readFile(from: path)! +// MSAudioConvert.sbcTopcm(data){ pcm in +// MixSdk.shared.stt.sendVoice(pcmData: pcm) +// } + MixSdk.shared.stt.sendVoice(sbcData: data) + } + //7 + @objc func endTask(){ + + } + func readFile(from path:String) ->Data?{ + let fileURL = URL(fileURLWithPath: path) + do { + let data = try Data(contentsOf:fileURL) + return data + } catch { + return nil + } + } +} + diff --git a/MixSdk/Example/Example/SttViewController.swift b/MixSdk/Example/Example/SttViewController.swift index 23f1d88..2c1e02e 100644 --- a/MixSdk/Example/Example/SttViewController.swift +++ b/MixSdk/Example/Example/SttViewController.swift @@ -66,7 +66,7 @@ class SttViewController: UIViewController{ } func setupRecordCallBack(){ recordMamager.recordDataCallBack = { data in - MixSdk.shared.stt.sendVoice(data: data) + MixSdk.shared.stt.sendVoice(pcmData: data) } } } diff --git a/MixSdk/Example/Example/TtsFileViewController.swift b/MixSdk/Example/Example/TtsFileViewController.swift index 01d1bbe..432736d 100644 --- a/MixSdk/Example/Example/TtsFileViewController.swift +++ b/MixSdk/Example/Example/TtsFileViewController.swift @@ -11,7 +11,6 @@ import MixSdk import SnapKit import Toast_Swift class TtsFileViewController: UIViewController{ - let recordMamager = AiMouseRecordManager() var isRecord = false; let textView = UITextView() @@ -20,7 +19,6 @@ class TtsFileViewController: UIViewController{ // Do any additional setup after loading the view. setupViews() setupSttCallBack() - setupRecordCallBack() } func setupViews(){ self.title = "语音文件识别" @@ -57,11 +55,6 @@ class TtsFileViewController: UIViewController{ } } } - func setupRecordCallBack(){ - recordMamager.recordDataCallBack = { data in - MixSdk.shared.stt.sendVoice(data: data) - } - } } diff --git a/MixSdk/Example/Example/ViewController.swift b/MixSdk/Example/Example/ViewController.swift index 978ea56..abb1d08 100644 --- a/MixSdk/Example/Example/ViewController.swift +++ b/MixSdk/Example/Example/ViewController.swift @@ -24,6 +24,7 @@ class ViewController: UIViewController{ ("语音文件转文本","fileSttAction"), ("语音数据流转文本","sttAction"), + ("sbc转pcm","sbc2PcmAction"), ] override func viewDidLoad() { @@ -154,5 +155,15 @@ extension ViewController{ let vc = AigcViewController() self.navigationController?.pushViewController(vc, animated: true) } + + @objc func sbc2PcmAction() { + if !MixSdk.shared.auth.authorized { + self.view.makeToast("unAuthorized!") + return; + } + let vc = Sbc2PcmViewController() + self.navigationController?.pushViewController(vc, animated: true) + } + } diff --git a/MixSdk/MixSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate b/MixSdk/MixSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate index 21b4eed..f215426 100644 Binary files a/MixSdk/MixSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate and b/MixSdk/MixSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/MixSdk/MixSdk.xcworkspace/xcuserdata/apple.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/MixSdk/MixSdk.xcworkspace/xcuserdata/apple.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 56e205c..a1a8a88 100644 --- a/MixSdk/MixSdk.xcworkspace/xcuserdata/apple.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/MixSdk/MixSdk.xcworkspace/xcuserdata/apple.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -3,4 +3,70 @@ uuid = "CEE9026F-0B36-4450-AB09-5A796FB97D62" type = "0" version = "2.0"> + + + + + + + + + + + + + + + + diff --git a/MixSdk/MixSdk/MixSdk.xcodeproj/project.pbxproj b/MixSdk/MixSdk/MixSdk.xcodeproj/project.pbxproj index 9fc448b..e62dc87 100644 --- a/MixSdk/MixSdk/MixSdk.xcodeproj/project.pbxproj +++ b/MixSdk/MixSdk/MixSdk.xcodeproj/project.pbxproj @@ -40,6 +40,143 @@ 18C42B3D2C22F2C4000D8860 /* MSTtsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18C42B3C2C22F2C4000D8860 /* MSTtsModel.swift */; }; 18C42B3F2C22F2E1000D8860 /* MSChatModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18C42B3E2C22F2E1000D8860 /* MSChatModel.swift */; }; 18C42B4B2C23DA29000D8860 /* SbcToPcm.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18C42B4A2C23DA29000D8860 /* SbcToPcm.swift */; }; + 18C42BE72C242202000D8860 /* version.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B5E2C242202000D8860 /* version.h */; }; + 18C42BE82C242202000D8860 /* buffersrc.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B5F2C242202000D8860 /* buffersrc.h */; }; + 18C42BE92C242202000D8860 /* buffersink.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B602C242202000D8860 /* buffersink.h */; }; + 18C42BEA2C242202000D8860 /* avfilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B612C242202000D8860 /* avfilter.h */; }; + 18C42BEB2C242202000D8860 /* hwcontext.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B632C242202000D8860 /* hwcontext.h */; }; + 18C42BEC2C242202000D8860 /* time.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B642C242202000D8860 /* time.h */; }; + 18C42BED2C242202000D8860 /* hwcontext_cuda.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B652C242202000D8860 /* hwcontext_cuda.h */; }; + 18C42BEE2C242202000D8860 /* intfloat.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B662C242202000D8860 /* intfloat.h */; }; + 18C42BEF2C242202000D8860 /* error.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B672C242202000D8860 /* error.h */; }; + 18C42BF02C242202000D8860 /* fifo.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B682C242202000D8860 /* fifo.h */; }; + 18C42BF12C242202000D8860 /* blowfish.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B692C242202000D8860 /* blowfish.h */; }; + 18C42BF22C242202000D8860 /* hwcontext_mediacodec.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B6A2C242202000D8860 /* hwcontext_mediacodec.h */; }; + 18C42BF32C242202000D8860 /* replaygain.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B6B2C242202000D8860 /* replaygain.h */; }; + 18C42BF42C242202000D8860 /* version.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B6C2C242202000D8860 /* version.h */; }; + 18C42BF52C242202000D8860 /* murmur3.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B6D2C242202000D8860 /* murmur3.h */; }; + 18C42BF62C242202000D8860 /* stereo3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B6E2C242202000D8860 /* stereo3d.h */; }; + 18C42BF72C242202000D8860 /* samplefmt.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B6F2C242202000D8860 /* samplefmt.h */; }; + 18C42BF82C242202000D8860 /* pixdesc.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B702C242202000D8860 /* pixdesc.h */; }; + 18C42BF92C242202000D8860 /* base64.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B712C242202000D8860 /* base64.h */; }; + 18C42BFA2C242202000D8860 /* rational.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B722C242202000D8860 /* rational.h */; }; + 18C42BFB2C242202000D8860 /* sha.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B732C242202000D8860 /* sha.h */; }; + 18C42BFC2C242202000D8860 /* motion_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B742C242202000D8860 /* motion_vector.h */; }; + 18C42BFD2C242202000D8860 /* avconfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B752C242202000D8860 /* avconfig.h */; }; + 18C42BFE2C242202000D8860 /* lfg.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B762C242202000D8860 /* lfg.h */; }; + 18C42BFF2C242202000D8860 /* avutil.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B772C242202000D8860 /* avutil.h */; }; + 18C42C002C242202000D8860 /* hwcontext_vulkan.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B782C242202000D8860 /* hwcontext_vulkan.h */; }; + 18C42C012C242202000D8860 /* xtea.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B792C242202000D8860 /* xtea.h */; }; + 18C42C022C242202000D8860 /* crc.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B7A2C242202000D8860 /* crc.h */; }; + 18C42C032C242202000D8860 /* hwcontext_vdpau.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B7B2C242202000D8860 /* hwcontext_vdpau.h */; }; + 18C42C042C242202000D8860 /* frame.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B7C2C242202000D8860 /* frame.h */; }; + 18C42C052C242202000D8860 /* file.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B7D2C242202000D8860 /* file.h */; }; + 18C42C062C242202000D8860 /* md5.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B7E2C242202000D8860 /* md5.h */; }; + 18C42C072C242202000D8860 /* cast5.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B7F2C242202000D8860 /* cast5.h */; }; + 18C42C082C242202000D8860 /* hwcontext_vaapi.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B802C242202000D8860 /* hwcontext_vaapi.h */; }; + 18C42C092C242202000D8860 /* spherical.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B812C242202000D8860 /* spherical.h */; }; + 18C42C0A2C242202000D8860 /* ffversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B822C242202000D8860 /* ffversion.h */; }; + 18C42C0B2C242202000D8860 /* hwcontext_opencl.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B832C242202000D8860 /* hwcontext_opencl.h */; }; + 18C42C0C2C242202000D8860 /* audio_fifo.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B842C242202000D8860 /* audio_fifo.h */; }; + 18C42C0D2C242202000D8860 /* tree.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B852C242202000D8860 /* tree.h */; }; + 18C42C0E2C242202000D8860 /* threadmessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B862C242202000D8860 /* threadmessage.h */; }; + 18C42C0F2C242202000D8860 /* attributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B872C242202000D8860 /* attributes.h */; }; + 18C42C102C242202000D8860 /* adler32.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B882C242202000D8860 /* adler32.h */; }; + 18C42C112C242202000D8860 /* hwcontext_d3d11va.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B892C242202000D8860 /* hwcontext_d3d11va.h */; }; + 18C42C122C242202000D8860 /* timecode.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B8A2C242202000D8860 /* timecode.h */; }; + 18C42C132C242202000D8860 /* dovi_meta.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B8B2C242202000D8860 /* dovi_meta.h */; }; + 18C42C142C242202000D8860 /* tx.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B8C2C242202000D8860 /* tx.h */; }; + 18C42C152C242202000D8860 /* sha512.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B8D2C242202000D8860 /* sha512.h */; }; + 18C42C162C242202000D8860 /* hwcontext_dxva2.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B8E2C242202000D8860 /* hwcontext_dxva2.h */; }; + 18C42C172C242202000D8860 /* display.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B8F2C242202000D8860 /* display.h */; }; + 18C42C182C242202000D8860 /* buffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B902C242202000D8860 /* buffer.h */; }; + 18C42C192C242202000D8860 /* camellia.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B912C242202000D8860 /* camellia.h */; }; + 18C42C1A2C242202000D8860 /* pixelutils.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B922C242202000D8860 /* pixelutils.h */; }; + 18C42C1B2C242202000D8860 /* hwcontext_drm.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B932C242202000D8860 /* hwcontext_drm.h */; }; + 18C42C1C2C242202000D8860 /* common.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B942C242202000D8860 /* common.h */; }; + 18C42C1D2C242202000D8860 /* hmac.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B952C242202000D8860 /* hmac.h */; }; + 18C42C1E2C242202000D8860 /* eval.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B962C242202000D8860 /* eval.h */; }; + 18C42C1F2C242202000D8860 /* dict.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B972C242202000D8860 /* dict.h */; }; + 18C42C202C242202000D8860 /* random_seed.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B982C242202000D8860 /* random_seed.h */; }; + 18C42C212C242202000D8860 /* opt.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B992C242202000D8860 /* opt.h */; }; + 18C42C222C242202000D8860 /* mastering_display_metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B9A2C242202000D8860 /* mastering_display_metadata.h */; }; + 18C42C232C242202000D8860 /* log.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B9B2C242202000D8860 /* log.h */; }; + 18C42C242C242202000D8860 /* aes.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B9C2C242202000D8860 /* aes.h */; }; + 18C42C252C242202000D8860 /* macros.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B9D2C242202000D8860 /* macros.h */; }; + 18C42C262C242202000D8860 /* bswap.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B9E2C242202000D8860 /* bswap.h */; }; + 18C42C272C242202000D8860 /* rc4.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42B9F2C242202000D8860 /* rc4.h */; }; + 18C42C282C242202000D8860 /* tea.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BA02C242202000D8860 /* tea.h */; }; + 18C42C292C242202000D8860 /* cpu.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BA12C242202000D8860 /* cpu.h */; }; + 18C42C2A2C242202000D8860 /* lzo.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BA22C242202000D8860 /* lzo.h */; }; + 18C42C2B2C242202000D8860 /* des.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BA32C242202000D8860 /* des.h */; }; + 18C42C2C2C242202000D8860 /* channel_layout.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BA42C242202000D8860 /* channel_layout.h */; }; + 18C42C2D2C242202000D8860 /* encryption_info.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BA52C242202000D8860 /* encryption_info.h */; }; + 18C42C2E2C242202000D8860 /* twofish.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BA62C242202000D8860 /* twofish.h */; }; + 18C42C2F2C242202000D8860 /* imgutils.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BA72C242202000D8860 /* imgutils.h */; }; + 18C42C302C242202000D8860 /* hwcontext_videotoolbox.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BA82C242202000D8860 /* hwcontext_videotoolbox.h */; }; + 18C42C312C242202000D8860 /* video_enc_params.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BA92C242202000D8860 /* video_enc_params.h */; }; + 18C42C322C242202000D8860 /* mem.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BAA2C242202000D8860 /* mem.h */; }; + 18C42C332C242202000D8860 /* parseutils.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BAB2C242202000D8860 /* parseutils.h */; }; + 18C42C342C242202000D8860 /* ripemd.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BAC2C242202000D8860 /* ripemd.h */; }; + 18C42C352C242202000D8860 /* bprint.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BAD2C242202000D8860 /* bprint.h */; }; + 18C42C362C242202000D8860 /* hdr_dynamic_metadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BAE2C242202000D8860 /* hdr_dynamic_metadata.h */; }; + 18C42C372C242202000D8860 /* hwcontext_qsv.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BAF2C242202000D8860 /* hwcontext_qsv.h */; }; + 18C42C382C242202000D8860 /* pixfmt.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BB02C242202000D8860 /* pixfmt.h */; }; + 18C42C392C242202000D8860 /* aes_ctr.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BB12C242202000D8860 /* aes_ctr.h */; }; + 18C42C3A2C242202000D8860 /* timestamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BB22C242202000D8860 /* timestamp.h */; }; + 18C42C3B2C242202000D8860 /* downmix_info.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BB32C242202000D8860 /* downmix_info.h */; }; + 18C42C3C2C242202000D8860 /* avassert.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BB42C242202000D8860 /* avassert.h */; }; + 18C42C3D2C242202000D8860 /* hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BB52C242202000D8860 /* hash.h */; }; + 18C42C3E2C242202000D8860 /* mathematics.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BB62C242202000D8860 /* mathematics.h */; }; + 18C42C3F2C242202000D8860 /* intreadwrite.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BB72C242202000D8860 /* intreadwrite.h */; }; + 18C42C402C242202000D8860 /* avstring.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BB82C242202000D8860 /* avstring.h */; }; + 18C42C412C242202000D8860 /* version.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BBA2C242202000D8860 /* version.h */; }; + 18C42C422C242202000D8860 /* avdevice.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BBB2C242202000D8860 /* avdevice.h */; }; + 18C42C432C242202000D8860 /* version.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BBD2C242202000D8860 /* version.h */; }; + 18C42C442C242202000D8860 /* avio.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BBE2C242202000D8860 /* avio.h */; }; + 18C42C452C242202000D8860 /* avformat.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BBF2C242202000D8860 /* avformat.h */; }; + 18C42C462C242202000D8860 /* version.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BC12C242202000D8860 /* version.h */; }; + 18C42C472C242202000D8860 /* swscale.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BC22C242202000D8860 /* swscale.h */; }; + 18C42C482C242202000D8860 /* adts_parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BC42C242202000D8860 /* adts_parser.h */; }; + 18C42C492C242202000D8860 /* avcodec.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BC52C242202000D8860 /* avcodec.h */; }; + 18C42C4A2C242202000D8860 /* version.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BC62C242202000D8860 /* version.h */; }; + 18C42C4B2C242202000D8860 /* vdpau.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BC72C242202000D8860 /* vdpau.h */; }; + 18C42C4C2C242202000D8860 /* codec_par.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BC82C242202000D8860 /* codec_par.h */; }; + 18C42C4D2C242202000D8860 /* qsv.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BC92C242202000D8860 /* qsv.h */; }; + 18C42C4E2C242202000D8860 /* vaapi.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BCA2C242202000D8860 /* vaapi.h */; }; + 18C42C4F2C242202000D8860 /* codec_desc.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BCB2C242202000D8860 /* codec_desc.h */; }; + 18C42C502C242202000D8860 /* videotoolbox.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BCC2C242202000D8860 /* videotoolbox.h */; }; + 18C42C512C242202000D8860 /* xvmc.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BCD2C242202000D8860 /* xvmc.h */; }; + 18C42C522C242202000D8860 /* mediacodec.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BCE2C242202000D8860 /* mediacodec.h */; }; + 18C42C532C242202000D8860 /* d3d11va.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BCF2C242202000D8860 /* d3d11va.h */; }; + 18C42C542C242202000D8860 /* avfft.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BD02C242202000D8860 /* avfft.h */; }; + 18C42C552C242202000D8860 /* codec.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BD12C242202000D8860 /* codec.h */; }; + 18C42C562C242202000D8860 /* jni.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BD22C242202000D8860 /* jni.h */; }; + 18C42C572C242202000D8860 /* packet.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BD32C242202000D8860 /* packet.h */; }; + 18C42C582C242202000D8860 /* bsf.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BD42C242202000D8860 /* bsf.h */; }; + 18C42C592C242202000D8860 /* codec_id.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BD52C242202000D8860 /* codec_id.h */; }; + 18C42C5A2C242202000D8860 /* dirac.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BD62C242202000D8860 /* dirac.h */; }; + 18C42C5B2C242202000D8860 /* avdct.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BD72C242202000D8860 /* avdct.h */; }; + 18C42C5C2C242202000D8860 /* ac3_parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BD82C242202000D8860 /* ac3_parser.h */; }; + 18C42C5D2C242202000D8860 /* vorbis_parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BD92C242202000D8860 /* vorbis_parser.h */; }; + 18C42C5E2C242202000D8860 /* dxva2.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BDA2C242202000D8860 /* dxva2.h */; }; + 18C42C5F2C242202000D8860 /* dv_profile.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BDB2C242202000D8860 /* dv_profile.h */; }; + 18C42C602C242202000D8860 /* version.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BDD2C242202000D8860 /* version.h */; }; + 18C42C612C242202000D8860 /* swresample.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42BDE2C242202000D8860 /* swresample.h */; }; + 18C42C622C242202000D8860 /* libavutil.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 18C42BE02C242202000D8860 /* libavutil.a */; }; + 18C42C632C242202000D8860 /* libavfilter.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 18C42BE12C242202000D8860 /* libavfilter.a */; }; + 18C42C642C242203000D8860 /* libavcodec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 18C42BE22C242202000D8860 /* libavcodec.a */; }; + 18C42C652C242203000D8860 /* libavformat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 18C42BE32C242202000D8860 /* libavformat.a */; }; + 18C42C662C242203000D8860 /* libavdevice.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 18C42BE42C242202000D8860 /* libavdevice.a */; }; + 18C42C672C242203000D8860 /* libswresample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 18C42BE52C242202000D8860 /* libswresample.a */; }; + 18C42C682C242203000D8860 /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 18C42BE62C242202000D8860 /* libswscale.a */; }; + 18C42C6F2C2422C2000D8860 /* AiAudioDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C42C6B2C2422C2000D8860 /* AiAudioDecoder.m */; }; + 18C42C702C2422C2000D8860 /* AiAudioDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42C6C2C2422C2000D8860 /* AiAudioDecoder.h */; }; + 18C42C742C242361000D8860 /* TestManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42C722C242361000D8860 /* TestManager.h */; }; + 18C42C752C242361000D8860 /* TestManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18C42C732C242361000D8860 /* TestManager.m */; }; + 18C42C782C24241A000D8860 /* MixSdk-Bridging-Header.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C42C762C24241A000D8860 /* MixSdk-Bridging-Header.h */; }; + 18C42C7B2C24270D000D8860 /* MSAudioConvert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18C42C7A2C24270D000D8860 /* MSAudioConvert.swift */; }; + 18C42C7D2C242A40000D8860 /* liblzma.5.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 18C42C7C2C242A40000D8860 /* liblzma.5.tbd */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -77,6 +214,143 @@ 18C42B3C2C22F2C4000D8860 /* MSTtsModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSTtsModel.swift; sourceTree = ""; }; 18C42B3E2C22F2E1000D8860 /* MSChatModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSChatModel.swift; sourceTree = ""; }; 18C42B4A2C23DA29000D8860 /* SbcToPcm.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SbcToPcm.swift; sourceTree = ""; }; + 18C42B5E2C242202000D8860 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = ""; }; + 18C42B5F2C242202000D8860 /* buffersrc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = buffersrc.h; sourceTree = ""; }; + 18C42B602C242202000D8860 /* buffersink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = buffersink.h; sourceTree = ""; }; + 18C42B612C242202000D8860 /* avfilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = avfilter.h; sourceTree = ""; }; + 18C42B632C242202000D8860 /* hwcontext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hwcontext.h; sourceTree = ""; }; + 18C42B642C242202000D8860 /* time.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = time.h; sourceTree = ""; }; + 18C42B652C242202000D8860 /* hwcontext_cuda.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hwcontext_cuda.h; sourceTree = ""; }; + 18C42B662C242202000D8860 /* intfloat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = intfloat.h; sourceTree = ""; }; + 18C42B672C242202000D8860 /* error.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = error.h; sourceTree = ""; }; + 18C42B682C242202000D8860 /* fifo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fifo.h; sourceTree = ""; }; + 18C42B692C242202000D8860 /* blowfish.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = blowfish.h; sourceTree = ""; }; + 18C42B6A2C242202000D8860 /* hwcontext_mediacodec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hwcontext_mediacodec.h; sourceTree = ""; }; + 18C42B6B2C242202000D8860 /* replaygain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = replaygain.h; sourceTree = ""; }; + 18C42B6C2C242202000D8860 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = ""; }; + 18C42B6D2C242202000D8860 /* murmur3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = murmur3.h; sourceTree = ""; }; + 18C42B6E2C242202000D8860 /* stereo3d.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stereo3d.h; sourceTree = ""; }; + 18C42B6F2C242202000D8860 /* samplefmt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = samplefmt.h; sourceTree = ""; }; + 18C42B702C242202000D8860 /* pixdesc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pixdesc.h; sourceTree = ""; }; + 18C42B712C242202000D8860 /* base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = base64.h; sourceTree = ""; }; + 18C42B722C242202000D8860 /* rational.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rational.h; sourceTree = ""; }; + 18C42B732C242202000D8860 /* sha.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha.h; sourceTree = ""; }; + 18C42B742C242202000D8860 /* motion_vector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = motion_vector.h; sourceTree = ""; }; + 18C42B752C242202000D8860 /* avconfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = avconfig.h; sourceTree = ""; }; + 18C42B762C242202000D8860 /* lfg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lfg.h; sourceTree = ""; }; + 18C42B772C242202000D8860 /* avutil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = avutil.h; sourceTree = ""; }; + 18C42B782C242202000D8860 /* hwcontext_vulkan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hwcontext_vulkan.h; sourceTree = ""; }; + 18C42B792C242202000D8860 /* xtea.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xtea.h; sourceTree = ""; }; + 18C42B7A2C242202000D8860 /* crc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crc.h; sourceTree = ""; }; + 18C42B7B2C242202000D8860 /* hwcontext_vdpau.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hwcontext_vdpau.h; sourceTree = ""; }; + 18C42B7C2C242202000D8860 /* frame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = frame.h; sourceTree = ""; }; + 18C42B7D2C242202000D8860 /* file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = file.h; sourceTree = ""; }; + 18C42B7E2C242202000D8860 /* md5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = md5.h; sourceTree = ""; }; + 18C42B7F2C242202000D8860 /* cast5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cast5.h; sourceTree = ""; }; + 18C42B802C242202000D8860 /* hwcontext_vaapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hwcontext_vaapi.h; sourceTree = ""; }; + 18C42B812C242202000D8860 /* spherical.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spherical.h; sourceTree = ""; }; + 18C42B822C242202000D8860 /* ffversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ffversion.h; sourceTree = ""; }; + 18C42B832C242202000D8860 /* hwcontext_opencl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hwcontext_opencl.h; sourceTree = ""; }; + 18C42B842C242202000D8860 /* audio_fifo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audio_fifo.h; sourceTree = ""; }; + 18C42B852C242202000D8860 /* tree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tree.h; sourceTree = ""; }; + 18C42B862C242202000D8860 /* threadmessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = threadmessage.h; sourceTree = ""; }; + 18C42B872C242202000D8860 /* attributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = attributes.h; sourceTree = ""; }; + 18C42B882C242202000D8860 /* adler32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = adler32.h; sourceTree = ""; }; + 18C42B892C242202000D8860 /* hwcontext_d3d11va.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hwcontext_d3d11va.h; sourceTree = ""; }; + 18C42B8A2C242202000D8860 /* timecode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = timecode.h; sourceTree = ""; }; + 18C42B8B2C242202000D8860 /* dovi_meta.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dovi_meta.h; sourceTree = ""; }; + 18C42B8C2C242202000D8860 /* tx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tx.h; sourceTree = ""; }; + 18C42B8D2C242202000D8860 /* sha512.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha512.h; sourceTree = ""; }; + 18C42B8E2C242202000D8860 /* hwcontext_dxva2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hwcontext_dxva2.h; sourceTree = ""; }; + 18C42B8F2C242202000D8860 /* display.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = display.h; sourceTree = ""; }; + 18C42B902C242202000D8860 /* buffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = buffer.h; sourceTree = ""; }; + 18C42B912C242202000D8860 /* camellia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = camellia.h; sourceTree = ""; }; + 18C42B922C242202000D8860 /* pixelutils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pixelutils.h; sourceTree = ""; }; + 18C42B932C242202000D8860 /* hwcontext_drm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hwcontext_drm.h; sourceTree = ""; }; + 18C42B942C242202000D8860 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; }; + 18C42B952C242202000D8860 /* hmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hmac.h; sourceTree = ""; }; + 18C42B962C242202000D8860 /* eval.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eval.h; sourceTree = ""; }; + 18C42B972C242202000D8860 /* dict.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dict.h; sourceTree = ""; }; + 18C42B982C242202000D8860 /* random_seed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = random_seed.h; sourceTree = ""; }; + 18C42B992C242202000D8860 /* opt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opt.h; sourceTree = ""; }; + 18C42B9A2C242202000D8860 /* mastering_display_metadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mastering_display_metadata.h; sourceTree = ""; }; + 18C42B9B2C242202000D8860 /* log.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = log.h; sourceTree = ""; }; + 18C42B9C2C242202000D8860 /* aes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aes.h; sourceTree = ""; }; + 18C42B9D2C242202000D8860 /* macros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = macros.h; sourceTree = ""; }; + 18C42B9E2C242202000D8860 /* bswap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bswap.h; sourceTree = ""; }; + 18C42B9F2C242202000D8860 /* rc4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rc4.h; sourceTree = ""; }; + 18C42BA02C242202000D8860 /* tea.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tea.h; sourceTree = ""; }; + 18C42BA12C242202000D8860 /* cpu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpu.h; sourceTree = ""; }; + 18C42BA22C242202000D8860 /* lzo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lzo.h; sourceTree = ""; }; + 18C42BA32C242202000D8860 /* des.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = des.h; sourceTree = ""; }; + 18C42BA42C242202000D8860 /* channel_layout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = channel_layout.h; sourceTree = ""; }; + 18C42BA52C242202000D8860 /* encryption_info.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = encryption_info.h; sourceTree = ""; }; + 18C42BA62C242202000D8860 /* twofish.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = twofish.h; sourceTree = ""; }; + 18C42BA72C242202000D8860 /* imgutils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = imgutils.h; sourceTree = ""; }; + 18C42BA82C242202000D8860 /* hwcontext_videotoolbox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hwcontext_videotoolbox.h; sourceTree = ""; }; + 18C42BA92C242202000D8860 /* video_enc_params.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = video_enc_params.h; sourceTree = ""; }; + 18C42BAA2C242202000D8860 /* mem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mem.h; sourceTree = ""; }; + 18C42BAB2C242202000D8860 /* parseutils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = parseutils.h; sourceTree = ""; }; + 18C42BAC2C242202000D8860 /* ripemd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ripemd.h; sourceTree = ""; }; + 18C42BAD2C242202000D8860 /* bprint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bprint.h; sourceTree = ""; }; + 18C42BAE2C242202000D8860 /* hdr_dynamic_metadata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hdr_dynamic_metadata.h; sourceTree = ""; }; + 18C42BAF2C242202000D8860 /* hwcontext_qsv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hwcontext_qsv.h; sourceTree = ""; }; + 18C42BB02C242202000D8860 /* pixfmt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pixfmt.h; sourceTree = ""; }; + 18C42BB12C242202000D8860 /* aes_ctr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aes_ctr.h; sourceTree = ""; }; + 18C42BB22C242202000D8860 /* timestamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = timestamp.h; sourceTree = ""; }; + 18C42BB32C242202000D8860 /* downmix_info.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = downmix_info.h; sourceTree = ""; }; + 18C42BB42C242202000D8860 /* avassert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = avassert.h; sourceTree = ""; }; + 18C42BB52C242202000D8860 /* hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hash.h; sourceTree = ""; }; + 18C42BB62C242202000D8860 /* mathematics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mathematics.h; sourceTree = ""; }; + 18C42BB72C242202000D8860 /* intreadwrite.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = intreadwrite.h; sourceTree = ""; }; + 18C42BB82C242202000D8860 /* avstring.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = avstring.h; sourceTree = ""; }; + 18C42BBA2C242202000D8860 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = ""; }; + 18C42BBB2C242202000D8860 /* avdevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = avdevice.h; sourceTree = ""; }; + 18C42BBD2C242202000D8860 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = ""; }; + 18C42BBE2C242202000D8860 /* avio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = avio.h; sourceTree = ""; }; + 18C42BBF2C242202000D8860 /* avformat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = avformat.h; sourceTree = ""; }; + 18C42BC12C242202000D8860 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = ""; }; + 18C42BC22C242202000D8860 /* swscale.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = swscale.h; sourceTree = ""; }; + 18C42BC42C242202000D8860 /* adts_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = adts_parser.h; sourceTree = ""; }; + 18C42BC52C242202000D8860 /* avcodec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = avcodec.h; sourceTree = ""; }; + 18C42BC62C242202000D8860 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = ""; }; + 18C42BC72C242202000D8860 /* vdpau.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vdpau.h; sourceTree = ""; }; + 18C42BC82C242202000D8860 /* codec_par.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = codec_par.h; sourceTree = ""; }; + 18C42BC92C242202000D8860 /* qsv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = qsv.h; sourceTree = ""; }; + 18C42BCA2C242202000D8860 /* vaapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vaapi.h; sourceTree = ""; }; + 18C42BCB2C242202000D8860 /* codec_desc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = codec_desc.h; sourceTree = ""; }; + 18C42BCC2C242202000D8860 /* videotoolbox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = videotoolbox.h; sourceTree = ""; }; + 18C42BCD2C242202000D8860 /* xvmc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xvmc.h; sourceTree = ""; }; + 18C42BCE2C242202000D8860 /* mediacodec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mediacodec.h; sourceTree = ""; }; + 18C42BCF2C242202000D8860 /* d3d11va.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = d3d11va.h; sourceTree = ""; }; + 18C42BD02C242202000D8860 /* avfft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = avfft.h; sourceTree = ""; }; + 18C42BD12C242202000D8860 /* codec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = codec.h; sourceTree = ""; }; + 18C42BD22C242202000D8860 /* jni.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = jni.h; sourceTree = ""; }; + 18C42BD32C242202000D8860 /* packet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = packet.h; sourceTree = ""; }; + 18C42BD42C242202000D8860 /* bsf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bsf.h; sourceTree = ""; }; + 18C42BD52C242202000D8860 /* codec_id.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = codec_id.h; sourceTree = ""; }; + 18C42BD62C242202000D8860 /* dirac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dirac.h; sourceTree = ""; }; + 18C42BD72C242202000D8860 /* avdct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = avdct.h; sourceTree = ""; }; + 18C42BD82C242202000D8860 /* ac3_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ac3_parser.h; sourceTree = ""; }; + 18C42BD92C242202000D8860 /* vorbis_parser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vorbis_parser.h; sourceTree = ""; }; + 18C42BDA2C242202000D8860 /* dxva2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dxva2.h; sourceTree = ""; }; + 18C42BDB2C242202000D8860 /* dv_profile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dv_profile.h; sourceTree = ""; }; + 18C42BDD2C242202000D8860 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = ""; }; + 18C42BDE2C242202000D8860 /* swresample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = swresample.h; sourceTree = ""; }; + 18C42BE02C242202000D8860 /* libavutil.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libavutil.a; sourceTree = ""; }; + 18C42BE12C242202000D8860 /* libavfilter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libavfilter.a; sourceTree = ""; }; + 18C42BE22C242202000D8860 /* libavcodec.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libavcodec.a; sourceTree = ""; }; + 18C42BE32C242202000D8860 /* libavformat.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libavformat.a; sourceTree = ""; }; + 18C42BE42C242202000D8860 /* libavdevice.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libavdevice.a; sourceTree = ""; }; + 18C42BE52C242202000D8860 /* libswresample.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libswresample.a; sourceTree = ""; }; + 18C42BE62C242202000D8860 /* libswscale.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libswscale.a; sourceTree = ""; }; + 18C42C6B2C2422C2000D8860 /* AiAudioDecoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AiAudioDecoder.m; sourceTree = ""; }; + 18C42C6C2C2422C2000D8860 /* AiAudioDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AiAudioDecoder.h; sourceTree = ""; }; + 18C42C722C242361000D8860 /* TestManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TestManager.h; sourceTree = ""; }; + 18C42C732C242361000D8860 /* TestManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TestManager.m; sourceTree = ""; }; + 18C42C762C24241A000D8860 /* MixSdk-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MixSdk-Bridging-Header.h"; sourceTree = ""; }; + 18C42C7A2C24270D000D8860 /* MSAudioConvert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MSAudioConvert.swift; sourceTree = ""; }; + 18C42C7C2C242A40000D8860 /* liblzma.5.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = liblzma.5.tbd; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.2.sdk/usr/lib/liblzma.5.tbd; sourceTree = DEVELOPER_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -84,7 +358,15 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 18C42C7D2C242A40000D8860 /* liblzma.5.tbd in Frameworks */, + 18C42C632C242202000D8860 /* libavfilter.a in Frameworks */, + 18C42C622C242202000D8860 /* libavutil.a in Frameworks */, 18132AF52C1C4C85002F6B52 /* libz.tbd in Frameworks */, + 18C42C652C242203000D8860 /* libavformat.a in Frameworks */, + 18C42C682C242203000D8860 /* libswscale.a in Frameworks */, + 18C42C662C242203000D8860 /* libavdevice.a in Frameworks */, + 18C42C672C242203000D8860 /* libswresample.a in Frameworks */, + 18C42C642C242203000D8860 /* libavcodec.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -112,6 +394,7 @@ 18132AF32C1C4C84002F6B52 /* Frameworks */ = { isa = PBXGroup; children = ( + 18C42C7C2C242A40000D8860 /* liblzma.5.tbd */, 18132AF42C1C4C85002F6B52 /* libz.tbd */, ); name = Frameworks; @@ -137,15 +420,20 @@ 18204BBD2C193E3D00F94E69 /* MixSdk */ = { isa = PBXGroup; children = ( + 18C42C692C2422C2000D8860 /* AudioDecode */, + 18C42B5B2C242202000D8860 /* FFmpeg-iOS */, 181188302C1A8B5200C23FAB /* Tools */, 18204BF12C19488800F94E69 /* SwiftHTTP */, 18204BBE2C193E3D00F94E69 /* MixSdk.h */, + 18C42C762C24241A000D8860 /* MixSdk-Bridging-Header.h */, 18204BEF2C19457600F94E69 /* MSHttpManager.swift */, 1811882E2C1A89E600C23FAB /* MixSdk.swift */, 18204BC52C193E4B00F94E69 /* MSAuth.swift */, 1811884D2C1AEF0F00C23FAB /* MSTranslate.swift */, 18C42B3A2C22F284000D8860 /* MsTranslateModel.swift */, 18132AEE2C1C25CC002F6B52 /* MSAigc.swift */, + 18C42C722C242361000D8860 /* TestManager.h */, + 18C42C732C242361000D8860 /* TestManager.m */, 184FFC532C21B091006F664D /* MSAigcModel.swift */, 181188562C1BE24200C23FAB /* MSStt.swift */, 18C42B382C22F1FA000D8860 /* MSSttModel.swift */, @@ -171,6 +459,225 @@ path = SwiftHTTP; sourceTree = ""; }; + 18C42B5B2C242202000D8860 /* FFmpeg-iOS */ = { + isa = PBXGroup; + children = ( + 18C42B5C2C242202000D8860 /* include */, + 18C42BDF2C242202000D8860 /* lib */, + ); + path = "FFmpeg-iOS"; + sourceTree = ""; + }; + 18C42B5C2C242202000D8860 /* include */ = { + isa = PBXGroup; + children = ( + 18C42B5D2C242202000D8860 /* libavfilter */, + 18C42B622C242202000D8860 /* libavutil */, + 18C42BB92C242202000D8860 /* libavdevice */, + 18C42BBC2C242202000D8860 /* libavformat */, + 18C42BC02C242202000D8860 /* libswscale */, + 18C42BC32C242202000D8860 /* libavcodec */, + 18C42BDC2C242202000D8860 /* libswresample */, + ); + path = include; + sourceTree = ""; + }; + 18C42B5D2C242202000D8860 /* libavfilter */ = { + isa = PBXGroup; + children = ( + 18C42B5E2C242202000D8860 /* version.h */, + 18C42B5F2C242202000D8860 /* buffersrc.h */, + 18C42B602C242202000D8860 /* buffersink.h */, + 18C42B612C242202000D8860 /* avfilter.h */, + ); + path = libavfilter; + sourceTree = ""; + }; + 18C42B622C242202000D8860 /* libavutil */ = { + isa = PBXGroup; + children = ( + 18C42B632C242202000D8860 /* hwcontext.h */, + 18C42B642C242202000D8860 /* time.h */, + 18C42B652C242202000D8860 /* hwcontext_cuda.h */, + 18C42B662C242202000D8860 /* intfloat.h */, + 18C42B672C242202000D8860 /* error.h */, + 18C42B682C242202000D8860 /* fifo.h */, + 18C42B692C242202000D8860 /* blowfish.h */, + 18C42B6A2C242202000D8860 /* hwcontext_mediacodec.h */, + 18C42B6B2C242202000D8860 /* replaygain.h */, + 18C42B6C2C242202000D8860 /* version.h */, + 18C42B6D2C242202000D8860 /* murmur3.h */, + 18C42B6E2C242202000D8860 /* stereo3d.h */, + 18C42B6F2C242202000D8860 /* samplefmt.h */, + 18C42B702C242202000D8860 /* pixdesc.h */, + 18C42B712C242202000D8860 /* base64.h */, + 18C42B722C242202000D8860 /* rational.h */, + 18C42B732C242202000D8860 /* sha.h */, + 18C42B742C242202000D8860 /* motion_vector.h */, + 18C42B752C242202000D8860 /* avconfig.h */, + 18C42B762C242202000D8860 /* lfg.h */, + 18C42B772C242202000D8860 /* avutil.h */, + 18C42B782C242202000D8860 /* hwcontext_vulkan.h */, + 18C42B792C242202000D8860 /* xtea.h */, + 18C42B7A2C242202000D8860 /* crc.h */, + 18C42B7B2C242202000D8860 /* hwcontext_vdpau.h */, + 18C42B7C2C242202000D8860 /* frame.h */, + 18C42B7D2C242202000D8860 /* file.h */, + 18C42B7E2C242202000D8860 /* md5.h */, + 18C42B7F2C242202000D8860 /* cast5.h */, + 18C42B802C242202000D8860 /* hwcontext_vaapi.h */, + 18C42B812C242202000D8860 /* spherical.h */, + 18C42B822C242202000D8860 /* ffversion.h */, + 18C42B832C242202000D8860 /* hwcontext_opencl.h */, + 18C42B842C242202000D8860 /* audio_fifo.h */, + 18C42B852C242202000D8860 /* tree.h */, + 18C42B862C242202000D8860 /* threadmessage.h */, + 18C42B872C242202000D8860 /* attributes.h */, + 18C42B882C242202000D8860 /* adler32.h */, + 18C42B892C242202000D8860 /* hwcontext_d3d11va.h */, + 18C42B8A2C242202000D8860 /* timecode.h */, + 18C42B8B2C242202000D8860 /* dovi_meta.h */, + 18C42B8C2C242202000D8860 /* tx.h */, + 18C42B8D2C242202000D8860 /* sha512.h */, + 18C42B8E2C242202000D8860 /* hwcontext_dxva2.h */, + 18C42B8F2C242202000D8860 /* display.h */, + 18C42B902C242202000D8860 /* buffer.h */, + 18C42B912C242202000D8860 /* camellia.h */, + 18C42B922C242202000D8860 /* pixelutils.h */, + 18C42B932C242202000D8860 /* hwcontext_drm.h */, + 18C42B942C242202000D8860 /* common.h */, + 18C42B952C242202000D8860 /* hmac.h */, + 18C42B962C242202000D8860 /* eval.h */, + 18C42B972C242202000D8860 /* dict.h */, + 18C42B982C242202000D8860 /* random_seed.h */, + 18C42B992C242202000D8860 /* opt.h */, + 18C42B9A2C242202000D8860 /* mastering_display_metadata.h */, + 18C42B9B2C242202000D8860 /* log.h */, + 18C42B9C2C242202000D8860 /* aes.h */, + 18C42B9D2C242202000D8860 /* macros.h */, + 18C42B9E2C242202000D8860 /* bswap.h */, + 18C42B9F2C242202000D8860 /* rc4.h */, + 18C42BA02C242202000D8860 /* tea.h */, + 18C42BA12C242202000D8860 /* cpu.h */, + 18C42BA22C242202000D8860 /* lzo.h */, + 18C42BA32C242202000D8860 /* des.h */, + 18C42BA42C242202000D8860 /* channel_layout.h */, + 18C42BA52C242202000D8860 /* encryption_info.h */, + 18C42BA62C242202000D8860 /* twofish.h */, + 18C42BA72C242202000D8860 /* imgutils.h */, + 18C42BA82C242202000D8860 /* hwcontext_videotoolbox.h */, + 18C42BA92C242202000D8860 /* video_enc_params.h */, + 18C42BAA2C242202000D8860 /* mem.h */, + 18C42BAB2C242202000D8860 /* parseutils.h */, + 18C42BAC2C242202000D8860 /* ripemd.h */, + 18C42BAD2C242202000D8860 /* bprint.h */, + 18C42BAE2C242202000D8860 /* hdr_dynamic_metadata.h */, + 18C42BAF2C242202000D8860 /* hwcontext_qsv.h */, + 18C42BB02C242202000D8860 /* pixfmt.h */, + 18C42BB12C242202000D8860 /* aes_ctr.h */, + 18C42BB22C242202000D8860 /* timestamp.h */, + 18C42BB32C242202000D8860 /* downmix_info.h */, + 18C42BB42C242202000D8860 /* avassert.h */, + 18C42BB52C242202000D8860 /* hash.h */, + 18C42BB62C242202000D8860 /* mathematics.h */, + 18C42BB72C242202000D8860 /* intreadwrite.h */, + 18C42BB82C242202000D8860 /* avstring.h */, + ); + path = libavutil; + sourceTree = ""; + }; + 18C42BB92C242202000D8860 /* libavdevice */ = { + isa = PBXGroup; + children = ( + 18C42BBA2C242202000D8860 /* version.h */, + 18C42BBB2C242202000D8860 /* avdevice.h */, + ); + path = libavdevice; + sourceTree = ""; + }; + 18C42BBC2C242202000D8860 /* libavformat */ = { + isa = PBXGroup; + children = ( + 18C42BBD2C242202000D8860 /* version.h */, + 18C42BBE2C242202000D8860 /* avio.h */, + 18C42BBF2C242202000D8860 /* avformat.h */, + ); + path = libavformat; + sourceTree = ""; + }; + 18C42BC02C242202000D8860 /* libswscale */ = { + isa = PBXGroup; + children = ( + 18C42BC12C242202000D8860 /* version.h */, + 18C42BC22C242202000D8860 /* swscale.h */, + ); + path = libswscale; + sourceTree = ""; + }; + 18C42BC32C242202000D8860 /* libavcodec */ = { + isa = PBXGroup; + children = ( + 18C42BC42C242202000D8860 /* adts_parser.h */, + 18C42BC52C242202000D8860 /* avcodec.h */, + 18C42BC62C242202000D8860 /* version.h */, + 18C42BC72C242202000D8860 /* vdpau.h */, + 18C42BC82C242202000D8860 /* codec_par.h */, + 18C42BC92C242202000D8860 /* qsv.h */, + 18C42BCA2C242202000D8860 /* vaapi.h */, + 18C42BCB2C242202000D8860 /* codec_desc.h */, + 18C42BCC2C242202000D8860 /* videotoolbox.h */, + 18C42BCD2C242202000D8860 /* xvmc.h */, + 18C42BCE2C242202000D8860 /* mediacodec.h */, + 18C42BCF2C242202000D8860 /* d3d11va.h */, + 18C42BD02C242202000D8860 /* avfft.h */, + 18C42BD12C242202000D8860 /* codec.h */, + 18C42BD22C242202000D8860 /* jni.h */, + 18C42BD32C242202000D8860 /* packet.h */, + 18C42BD42C242202000D8860 /* bsf.h */, + 18C42BD52C242202000D8860 /* codec_id.h */, + 18C42BD62C242202000D8860 /* dirac.h */, + 18C42BD72C242202000D8860 /* avdct.h */, + 18C42BD82C242202000D8860 /* ac3_parser.h */, + 18C42BD92C242202000D8860 /* vorbis_parser.h */, + 18C42BDA2C242202000D8860 /* dxva2.h */, + 18C42BDB2C242202000D8860 /* dv_profile.h */, + ); + path = libavcodec; + sourceTree = ""; + }; + 18C42BDC2C242202000D8860 /* libswresample */ = { + isa = PBXGroup; + children = ( + 18C42BDD2C242202000D8860 /* version.h */, + 18C42BDE2C242202000D8860 /* swresample.h */, + ); + path = libswresample; + sourceTree = ""; + }; + 18C42BDF2C242202000D8860 /* lib */ = { + isa = PBXGroup; + children = ( + 18C42BE02C242202000D8860 /* libavutil.a */, + 18C42BE12C242202000D8860 /* libavfilter.a */, + 18C42BE22C242202000D8860 /* libavcodec.a */, + 18C42BE32C242202000D8860 /* libavformat.a */, + 18C42BE42C242202000D8860 /* libavdevice.a */, + 18C42BE52C242202000D8860 /* libswresample.a */, + 18C42BE62C242202000D8860 /* libswscale.a */, + ); + path = lib; + sourceTree = ""; + }; + 18C42C692C2422C2000D8860 /* AudioDecode */ = { + isa = PBXGroup; + children = ( + 18C42C6C2C2422C2000D8860 /* AiAudioDecoder.h */, + 18C42C6B2C2422C2000D8860 /* AiAudioDecoder.m */, + 18C42C7A2C24270D000D8860 /* MSAudioConvert.swift */, + ); + path = AudioDecode; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -179,7 +686,133 @@ buildActionMask = 2147483647; files = ( 18204BF92C19488900F94E69 /* SwiftHTTP.h in Headers */, + 18C42C2E2C242202000D8860 /* twofish.h in Headers */, + 18C42C502C242202000D8860 /* videotoolbox.h in Headers */, + 18C42BF22C242202000D8860 /* hwcontext_mediacodec.h in Headers */, + 18C42BEB2C242202000D8860 /* hwcontext.h in Headers */, + 18C42C412C242202000D8860 /* version.h in Headers */, + 18C42C522C242202000D8860 /* mediacodec.h in Headers */, + 18C42BEF2C242202000D8860 /* error.h in Headers */, + 18C42C182C242202000D8860 /* buffer.h in Headers */, + 18C42BE72C242202000D8860 /* version.h in Headers */, + 18C42BF62C242202000D8860 /* stereo3d.h in Headers */, + 18C42BF42C242202000D8860 /* version.h in Headers */, + 18C42C4F2C242202000D8860 /* codec_desc.h in Headers */, + 18C42C1F2C242202000D8860 /* dict.h in Headers */, + 18C42C482C242202000D8860 /* adts_parser.h in Headers */, + 18C42C442C242202000D8860 /* avio.h in Headers */, + 18C42C1B2C242202000D8860 /* hwcontext_drm.h in Headers */, + 18C42C172C242202000D8860 /* display.h in Headers */, + 18C42C0B2C242202000D8860 /* hwcontext_opencl.h in Headers */, + 18C42C292C242202000D8860 /* cpu.h in Headers */, + 18C42BED2C242202000D8860 /* hwcontext_cuda.h in Headers */, + 18C42C042C242202000D8860 /* frame.h in Headers */, + 18C42C2F2C242202000D8860 /* imgutils.h in Headers */, + 18C42C3C2C242202000D8860 /* avassert.h in Headers */, + 18C42C212C242202000D8860 /* opt.h in Headers */, + 18C42C352C242202000D8860 /* bprint.h in Headers */, + 18C42C062C242202000D8860 /* md5.h in Headers */, + 18C42C032C242202000D8860 /* hwcontext_vdpau.h in Headers */, + 18C42C112C242202000D8860 /* hwcontext_d3d11va.h in Headers */, + 18C42BF72C242202000D8860 /* samplefmt.h in Headers */, + 18C42C782C24241A000D8860 /* MixSdk-Bridging-Header.h in Headers */, + 18C42C5A2C242202000D8860 /* dirac.h in Headers */, + 18C42C3A2C242202000D8860 /* timestamp.h in Headers */, + 18C42C4E2C242202000D8860 /* vaapi.h in Headers */, + 18C42C312C242202000D8860 /* video_enc_params.h in Headers */, + 18C42C472C242202000D8860 /* swscale.h in Headers */, + 18C42C022C242202000D8860 /* crc.h in Headers */, + 18C42C242C242202000D8860 /* aes.h in Headers */, + 18C42C2A2C242202000D8860 /* lzo.h in Headers */, + 18C42C392C242202000D8860 /* aes_ctr.h in Headers */, + 18C42BEC2C242202000D8860 /* time.h in Headers */, + 18C42C072C242202000D8860 /* cast5.h in Headers */, + 18C42BF32C242202000D8860 /* replaygain.h in Headers */, + 18C42C262C242202000D8860 /* bswap.h in Headers */, + 18C42C432C242202000D8860 /* version.h in Headers */, + 18C42C422C242202000D8860 /* avdevice.h in Headers */, + 18C42C132C242202000D8860 /* dovi_meta.h in Headers */, + 18C42BFD2C242202000D8860 /* avconfig.h in Headers */, + 18C42C372C242202000D8860 /* hwcontext_qsv.h in Headers */, + 18C42C052C242202000D8860 /* file.h in Headers */, + 18C42C002C242202000D8860 /* hwcontext_vulkan.h in Headers */, + 18C42C3F2C242202000D8860 /* intreadwrite.h in Headers */, + 18C42C552C242202000D8860 /* codec.h in Headers */, + 18C42C222C242202000D8860 /* mastering_display_metadata.h in Headers */, + 18C42C152C242202000D8860 /* sha512.h in Headers */, + 18C42C3D2C242202000D8860 /* hash.h in Headers */, + 18C42C142C242202000D8860 /* tx.h in Headers */, + 18C42C332C242202000D8860 /* parseutils.h in Headers */, + 18C42BF82C242202000D8860 /* pixdesc.h in Headers */, + 18C42C4B2C242202000D8860 /* vdpau.h in Headers */, + 18C42BF12C242202000D8860 /* blowfish.h in Headers */, + 18C42C0A2C242202000D8860 /* ffversion.h in Headers */, + 18C42C362C242202000D8860 /* hdr_dynamic_metadata.h in Headers */, + 18C42C4A2C242202000D8860 /* version.h in Headers */, + 18C42C0C2C242202000D8860 /* audio_fifo.h in Headers */, + 18C42C0E2C242202000D8860 /* threadmessage.h in Headers */, + 18C42C0D2C242202000D8860 /* tree.h in Headers */, + 18C42C492C242202000D8860 /* avcodec.h in Headers */, + 18C42C2D2C242202000D8860 /* encryption_info.h in Headers */, + 18C42C702C2422C2000D8860 /* AiAudioDecoder.h in Headers */, 18204BBF2C193E3D00F94E69 /* MixSdk.h in Headers */, + 18C42BFF2C242202000D8860 /* avutil.h in Headers */, + 18C42C202C242202000D8860 /* random_seed.h in Headers */, + 18C42C4C2C242202000D8860 /* codec_par.h in Headers */, + 18C42C3E2C242202000D8860 /* mathematics.h in Headers */, + 18C42BEA2C242202000D8860 /* avfilter.h in Headers */, + 18C42C5B2C242202000D8860 /* avdct.h in Headers */, + 18C42C252C242202000D8860 /* macros.h in Headers */, + 18C42C572C242202000D8860 /* packet.h in Headers */, + 18C42C462C242202000D8860 /* version.h in Headers */, + 18C42C162C242202000D8860 /* hwcontext_dxva2.h in Headers */, + 18C42C612C242202000D8860 /* swresample.h in Headers */, + 18C42C2B2C242202000D8860 /* des.h in Headers */, + 18C42BFB2C242202000D8860 /* sha.h in Headers */, + 18C42BF02C242202000D8860 /* fifo.h in Headers */, + 18C42C5F2C242202000D8860 /* dv_profile.h in Headers */, + 18C42C192C242202000D8860 /* camellia.h in Headers */, + 18C42C122C242202000D8860 /* timecode.h in Headers */, + 18C42BFA2C242202000D8860 /* rational.h in Headers */, + 18C42C402C242202000D8860 /* avstring.h in Headers */, + 18C42C102C242202000D8860 /* adler32.h in Headers */, + 18C42C082C242202000D8860 /* hwcontext_vaapi.h in Headers */, + 18C42C542C242202000D8860 /* avfft.h in Headers */, + 18C42C012C242202000D8860 /* xtea.h in Headers */, + 18C42BE92C242202000D8860 /* buffersink.h in Headers */, + 18C42C592C242202000D8860 /* codec_id.h in Headers */, + 18C42C282C242202000D8860 /* tea.h in Headers */, + 18C42BE82C242202000D8860 /* buffersrc.h in Headers */, + 18C42C3B2C242202000D8860 /* downmix_info.h in Headers */, + 18C42C1C2C242202000D8860 /* common.h in Headers */, + 18C42C602C242202000D8860 /* version.h in Headers */, + 18C42BF52C242202000D8860 /* murmur3.h in Headers */, + 18C42C582C242202000D8860 /* bsf.h in Headers */, + 18C42C452C242202000D8860 /* avformat.h in Headers */, + 18C42C2C2C242202000D8860 /* channel_layout.h in Headers */, + 18C42C1A2C242202000D8860 /* pixelutils.h in Headers */, + 18C42C5C2C242202000D8860 /* ac3_parser.h in Headers */, + 18C42C322C242202000D8860 /* mem.h in Headers */, + 18C42C092C242202000D8860 /* spherical.h in Headers */, + 18C42C532C242202000D8860 /* d3d11va.h in Headers */, + 18C42BFC2C242202000D8860 /* motion_vector.h in Headers */, + 18C42C5E2C242202000D8860 /* dxva2.h in Headers */, + 18C42C4D2C242202000D8860 /* qsv.h in Headers */, + 18C42C1D2C242202000D8860 /* hmac.h in Headers */, + 18C42C5D2C242202000D8860 /* vorbis_parser.h in Headers */, + 18C42C382C242202000D8860 /* pixfmt.h in Headers */, + 18C42C232C242202000D8860 /* log.h in Headers */, + 18C42BEE2C242202000D8860 /* intfloat.h in Headers */, + 18C42C1E2C242202000D8860 /* eval.h in Headers */, + 18C42C272C242202000D8860 /* rc4.h in Headers */, + 18C42C0F2C242202000D8860 /* attributes.h in Headers */, + 18C42C562C242202000D8860 /* jni.h in Headers */, + 18C42BFE2C242202000D8860 /* lfg.h in Headers */, + 18C42C512C242202000D8860 /* xvmc.h in Headers */, + 18C42BF92C242202000D8860 /* base64.h in Headers */, + 18C42C302C242202000D8860 /* hwcontext_videotoolbox.h in Headers */, + 18C42C742C242361000D8860 /* TestManager.h in Headers */, + 18C42C342C242202000D8860 /* ripemd.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -252,6 +885,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 18C42C7B2C24270D000D8860 /* MSAudioConvert.swift in Sources */, 18204BC62C193E4B00F94E69 /* MSAuth.swift in Sources */, 18132AED2C1C1EA8002F6B52 /* MSTool.swift in Sources */, 181188472C1ACA6100C23FAB /* String+MD5.swift in Sources */, @@ -263,6 +897,7 @@ 181188572C1BE24200C23FAB /* MSStt.swift in Sources */, 18204BFD2C19488900F94E69 /* Operation.swift in Sources */, 1811883C2C1A8B5200C23FAB /* JSON.swift in Sources */, + 18C42C752C242361000D8860 /* TestManager.m in Sources */, 181188402C1A8B5200C23FAB /* LRC.swift in Sources */, 18204BFC2C19488900F94E69 /* HTTPSecurity.swift in Sources */, 18204BFB2C19488900F94E69 /* Upload.swift in Sources */, @@ -280,6 +915,7 @@ 1811884E2C1AEF0F00C23FAB /* MSTranslate.swift in Sources */, 18204BF82C19488800F94E69 /* StatusCode.swift in Sources */, 18C42B392C22F1FA000D8860 /* MSSttModel.swift in Sources */, + 18C42C6F2C2422C2000D8860 /* AiAudioDecoder.m in Sources */, 18B74A1E2C1FDDB500FABBA9 /* MSChat.swift in Sources */, 184FFC542C21B091006F664D /* MSAigcModel.swift in Sources */, ); @@ -426,6 +1062,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = YES; GENERATE_INFOPLIST_FILE = YES; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/MixSdk/FFmpeg-iOS/include"; INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; @@ -434,6 +1071,10 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/MixSdk/FFmpeg-iOS/lib", + ); MACH_O_TYPE = staticlib; MARKETING_VERSION = 1.0; MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; @@ -442,6 +1083,7 @@ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OBJC_BRIDGING_HEADER = "MixSdk/MixSdk-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -461,6 +1103,7 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = YES; GENERATE_INFOPLIST_FILE = YES; + HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/MixSdk/FFmpeg-iOS/include"; INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 13.0; @@ -469,6 +1112,10 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/MixSdk/FFmpeg-iOS/lib", + ); MACH_O_TYPE = staticlib; MARKETING_VERSION = 1.0; MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; @@ -477,6 +1124,7 @@ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OBJC_BRIDGING_HEADER = "MixSdk/MixSdk-Bridging-Header.h"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; diff --git a/MixSdk/MixSdk/MixSdk/AudioDecode/AiAudioDecoder.h b/MixSdk/MixSdk/MixSdk/AudioDecode/AiAudioDecoder.h new file mode 100644 index 0000000..3db02d8 --- /dev/null +++ b/MixSdk/MixSdk/MixSdk/AudioDecode/AiAudioDecoder.h @@ -0,0 +1,21 @@ +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface AiAudioDecoder : NSObject + +@property (nonatomic,copy) void(^onRecvPCMData)(NSData *pcmData); + ++(AiAudioDecoder *)sharedInstance; + + +-(void)startSBCDecodec; + +-(NSData *)decodeSBCData:(NSData*)data; + +/* 释放SBC解码器 */ +- (void)finishSBCDecode; + + +@end +NS_ASSUME_NONNULL_END diff --git a/MixSdk/MixSdk/MixSdk/AudioDecode/AiAudioDecoder.m b/MixSdk/MixSdk/MixSdk/AudioDecode/AiAudioDecoder.m new file mode 100644 index 0000000..7ca3715 --- /dev/null +++ b/MixSdk/MixSdk/MixSdk/AudioDecode/AiAudioDecoder.m @@ -0,0 +1,250 @@ +#import "AiAudioDecoder.h" + + +#import + + +#include +#include +#include + +#include "libavutil/frame.h" +#include + +#include "libavcodec/avcodec.h" + +@interface AiAudioDecoder (){ + AVCodecContext *codecContext; + AVCodecParserContext *parserContext; + AVFrame *decodecAVFrame; + AVPacket *decodecAVPacket; +} +@property (assign, nonatomic) AVFrame *sbcFrame; +@property (assign, nonatomic) AVCodec *sbcCodec; +@property (assign, nonatomic) AVCodecContext *sbcCodecCtx; +@property (assign, nonatomic) AVPacket *sbcPacket; +@property (assign, nonatomic)AVCodecParserContext *sbcParser; +@end +@implementation AiAudioDecoder + +static AiAudioDecoder *instance = nil; +static dispatch_once_t onceToken; ++(AiAudioDecoder *)sharedInstance +{ + dispatch_once(&onceToken, ^{ + instance = [[self alloc] init]; + }); + return instance; +} + +//获取format +-(int)get_format_from_sample_fmt:(const char **)fmt sampleFormat:(enum AVSampleFormat)sample_fmt{ + int i; + struct sample_fmt_entry { + enum AVSampleFormat sample_fmt; const char *fmt_be, *fmt_le; + } sample_fmt_entries[] = { + { AV_SAMPLE_FMT_U8P, "u8p", "u8p" }, + { AV_SAMPLE_FMT_S16P, "s16p", "s16p" }, + { AV_SAMPLE_FMT_S32P, "s32p", "s32p" }, + { AV_SAMPLE_FMT_FLTP, "fltp", "fltp" }, + { AV_SAMPLE_FMT_DBLP, "u8", "u8" }, + { AV_SAMPLE_FMT_S64, "s64", "s64" }, + { AV_SAMPLE_FMT_S64P, "dblp", "dblp" }, + { AV_SAMPLE_FMT_NB, "nb", "nb" }, + { AV_SAMPLE_FMT_U8, "u8", "u8" }, + { AV_SAMPLE_FMT_S16, "s16be", "s16le" }, + { AV_SAMPLE_FMT_S32, "s32be", "s32le" }, + { AV_SAMPLE_FMT_FLT, "f32be", "f32le" }, + { AV_SAMPLE_FMT_DBL, "f64be", "f64le" }, + }; + *fmt = NULL; + for (i = 0; i < FF_ARRAY_ELEMS(sample_fmt_entries); i++) { + struct sample_fmt_entry *entry = &sample_fmt_entries[i]; + if (sample_fmt == entry->sample_fmt) { + *fmt = AV_NE(entry->fmt_be, entry->fmt_le); + [self showLog:[NSString stringWithFormat:@"sample format %s \n", + av_get_sample_fmt_name(sample_fmt)]]; + return 0; + } + } + [self showLog:[NSString stringWithFormat:@"sample format %s is not supported as output format\n", + av_get_sample_fmt_name(sample_fmt)]]; + return -1; +} + + +-(NSData*)decodeAudioData:(AVCodecContext *)dec_ctx pkt:(AVPacket *)pkt frame:(AVFrame*)frame { + + NSMutableData *resultData = [[NSMutableData alloc]init]; + + int i, ch; + int ret, data_size; + + /* send the packet with the compressed data to the decoder */ + ret = avcodec_send_packet(dec_ctx, pkt); + if (ret < 0) { + [self showLog:@"Error submitting the packet to the decoder\n"]; + + } + + /* read all the output frames (in general there may be any number of them */ + while (ret >= 0) { + ret = avcodec_receive_frame(dec_ctx, frame); + if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF){ + [self showLog:@"AVERROR \n"]; + return resultData; + }else if (ret < 0) { + [self showLog:@"Error during decoding\n"]; + return resultData; + } + data_size = av_get_bytes_per_sample(dec_ctx->sample_fmt); + [self showLog:[NSString stringWithFormat:@"采样位数 %d", data_size]]; + + if (data_size < 0) { + /* This should not occur, checking just for paranoia */ + [self showLog:@"Failed to calculate data size\n"]; + return resultData; + } + [self showLog:[NSString stringWithFormat:@"frame->nb_samples %d", frame->nb_samples]]; + for (i = 0; i < frame->nb_samples; i++){ + for (ch = 0; ch < dec_ctx->channels; ch++){ + /*写入到输出文件中*/ + uint8_t *copyByte = malloc(data_size); + memcpy(copyByte, frame->data[ch] + data_size*i, data_size); + [resultData appendData: [NSData dataWithBytes:copyByte length:data_size]]; + free(copyByte); + } + } + // fwrite(frame->data[ch] + data_size*i, 1, data_size,outputFile); + } + [self showLog:@"decode finish\n"]; + + return resultData; +} + + +-(void)startSBCDecodec{ + const AVCodec *codec; + + + //初始化av_packet 结构体 + decodecAVPacket = av_packet_alloc(); + + /* 查找支持解码器 */ + codec = avcodec_find_decoder(AV_CODEC_ID_SBC); + if (!codec) { + [self showLog:@"Codec not found\n"]; + return; + + } + /* 初始化解析器 */ + parserContext = av_parser_init(codec->id); + if (!parserContext) { + [self showLog:@"Parser not found\n"]; + return; + } + /* 初始化内容结构体 */ + codecContext = avcodec_alloc_context3(codec); + if (!codecContext) { + [self showLog:@"Could not allocate audio codec context\n" ]; + return; + } + + /* 打开解码器 */ + if (avcodec_open2(codecContext, codec, NULL) < 0) { + [self showLog:@"Could not open codec\n"]; + return; + } + +} +-(NSData *)decodeSBCData:(NSData*)data{ + NSMutableData *tmpData = [[NSMutableData alloc] init]; + int ret; + if (!decodecAVFrame) { + if (!(decodecAVFrame = av_frame_alloc())) { + [self showLog:@"Could not allocate audio frame"]; + return tmpData; + } + } + int length = (int)data.length; + while (length>0) { + /* 开始解析文件 */ + uint8_t *decodData = (Byte*)[data bytes]; + ret = av_parser_parse2(parserContext, codecContext, &decodecAVPacket->data, &decodecAVPacket->size, + decodData, length, + AV_NOPTS_VALUE, AV_NOPTS_VALUE, 0); + if (ret < 0) { + [self showLog:@"Error while parsing"]; + return tmpData; + } + /* 解析成功 开始解码 */ + if (decodecAVPacket->size){ + NSData *pcmData = [self decodeAudioData:codecContext pkt:decodecAVPacket frame:decodecAVFrame]; + if(pcmData.length!=0){ + [tmpData appendData:pcmData]; + if(self.onRecvPCMData){ + self.onRecvPCMData(pcmData); + } + } + } + data = [data subdataWithRange:NSMakeRange(ret, length-ret)]; + length -= ret; + } + /* 解码完成释放解码器 */ + decodecAVPacket->data = NULL; + decodecAVPacket->size = 0; + + return tmpData; +} +//-(void)decodeSBCData:(NSData*)data{ +// int ret; +// if (!decodecAVFrame) { +// if (!(decodecAVFrame = av_frame_alloc())) { +// [self showLog:@"Could not allocate audio frame"]; +// return; +// } +// } +// int length = (int)data.length; +// while (length>0) { +// /* 开始解析文件 */ +// uint8_t *decodData = (Byte*)[data bytes]; +// ret = av_parser_parse2(parserContext, codecContext, &decodecAVPacket->data, &decodecAVPacket->size, +// decodData, length, +// AV_NOPTS_VALUE, AV_NOPTS_VALUE, 0); +// if (ret < 0) { +// [self showLog:@"Error while parsing"]; +// return; +// } +// /* 解析成功 开始解码 */ +// if (decodecAVPacket->size){ +// NSData *pcmData = [self decodeAudioData:codecContext pkt:decodecAVPacket frame:decodecAVFrame]; +// if(pcmData.length!=0){ +// +// if(self.onRecvPCMData){ +// self.onRecvPCMData(pcmData); +// +// } +// } +// } +// data = [data subdataWithRange:NSMakeRange(ret, length-ret)]; +// length -= ret; +// } +// /* 解码完成释放解码器 */ +// decodecAVPacket->data = NULL; +// decodecAVPacket->size = 0; +// +//} + +-(void)finishSBCDecode{ + avcodec_free_context(&codecContext); + av_parser_close(parserContext); + av_frame_free(&decodecAVFrame); + av_packet_free(&decodecAVPacket); +} + + +- (void)showLog:(NSString *)log{ +// NSLog(@"[audio decode]%@",log); +} + +@end diff --git a/MixSdk/MixSdk/MixSdk/AudioDecode/MSAudioConvert.swift b/MixSdk/MixSdk/MixSdk/AudioDecode/MSAudioConvert.swift new file mode 100644 index 0000000..8f331d9 --- /dev/null +++ b/MixSdk/MixSdk/MixSdk/AudioDecode/MSAudioConvert.swift @@ -0,0 +1,33 @@ +// +// MSAudioConvert.swift +// MixSdk +// +// Created by incar on 2024/6/20. +// + +import Foundation + +/// 格式转换回调 +public typealias MSAudioConvertCallBack = (_ data:Data) -> Void + +public class MSAudioConvert{ + /// sbc转pcm,一次性返回 + /// - Parameter data: sbc数据 + /// - Returns: pcm数据 + public static func sbcTopcm(_ data:Data) -> Data{ + let data = AiAudioDecoder.sharedInstance().decodeSBCData(data) + return data + } + + + /// sbc转pcm,当数据量很大时,会拆分通过callBack多次回调返回 + /// - Parameters: + /// - data: sbc数据 + /// - callBack: 转回回调,会回调多次, + public static func sbcTopcm(_ data:Data,_ callBack: @escaping MSAudioConvertCallBack) { + AiAudioDecoder.sharedInstance().onRecvPCMData = { pcmData in + callBack(pcmData) + } + let _ = AiAudioDecoder.sharedInstance().decodeSBCData(data) + } +} diff --git a/MixSdk/MixSdk/MixSdk/MSStt.swift b/MixSdk/MixSdk/MixSdk/MSStt.swift index 1dbc821..30e3010 100644 --- a/MixSdk/MixSdk/MixSdk/MSStt.swift +++ b/MixSdk/MixSdk/MixSdk/MSStt.swift @@ -126,9 +126,16 @@ public extension MSStt{ /// 发送语音数据,format pcm,采样率 16000 /// - Parameter data: 语音数据 - func sendVoice(data:Data){ - // Logger.log(data) - socket.send(data: data) + func sendVoice(pcmData:Data){ + socket.send(data: pcmData) + } + + /// 发送语音数据,format sbc,采样率 16000 + /// - Parameter data: 语音数据 + func sendVoice(sbcData:Data){ + MSAudioConvert.sbcTopcm(sbcData){[weak self] pcm in + self?.socket.send(data: pcm) + } } // func openWebSocket(){ diff --git a/MixSdk/MixSdk/MixSdk/MixSdk-Bridging-Header.h b/MixSdk/MixSdk/MixSdk/MixSdk-Bridging-Header.h new file mode 100644 index 0000000..400b4ff --- /dev/null +++ b/MixSdk/MixSdk/MixSdk/MixSdk-Bridging-Header.h @@ -0,0 +1,9 @@ +// +// MixSdk-Bridging-Header.h +// MixSdk +// +// Created by incar on 2024/6/20. +// + +#import "TestManager.h" +#import "AudioDecode/AiAudioDecoder.h" diff --git a/MixSdk/MixSdk/MixSdk/MixSdk.swift b/MixSdk/MixSdk/MixSdk/MixSdk.swift index 36620c4..0833c1e 100644 --- a/MixSdk/MixSdk/MixSdk/MixSdk.swift +++ b/MixSdk/MixSdk/MixSdk/MixSdk.swift @@ -16,6 +16,8 @@ public class MixSdk:NSObject { // https://apifox.com/apidoc/shared-054b7e2c-cf4b-4e2b-875c-79fda14ddbbf?pwd=xRzzNg7l // 访问密码: xRzzNg7l + + AiAudioDecoder.sharedInstance().startSBCDecodec() } /// 初始化工作 @@ -27,7 +29,7 @@ public class MixSdk:NSObject { public var logs: [String] { Logger.logs } /// SDK 版本号 - public let version: String = "1.0.0" + public let version: String = "1.0.1" /// 默认为 false public var isDebug: Bool = false { didSet { Logger.isDebug = isDebug } @@ -52,6 +54,8 @@ public class MixSdk:NSObject { /// 语音转文字 public var stt = MSStt() + + // /// 鉴权 // public lazy var auth:MSAuth = { // return MSAuth() diff --git a/MixSdk/MixSdk/MixSdk/TestManager.h b/MixSdk/MixSdk/MixSdk/TestManager.h new file mode 100644 index 0000000..c3b59a0 --- /dev/null +++ b/MixSdk/MixSdk/MixSdk/TestManager.h @@ -0,0 +1,17 @@ +// +// TestManager.h +// MixSdk +// +// Created by incar on 2024/6/20. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface TestManager : NSObject + +- (void)add; +@end + +NS_ASSUME_NONNULL_END diff --git a/MixSdk/MixSdk/MixSdk/TestManager.m b/MixSdk/MixSdk/MixSdk/TestManager.m new file mode 100644 index 0000000..20e0f2c --- /dev/null +++ b/MixSdk/MixSdk/MixSdk/TestManager.m @@ -0,0 +1,14 @@ +// +// TestManager.m +// MixSdk +// +// Created by incar on 2024/6/20. +// + +#import "TestManager.h" + +@implementation TestManager +- (void)add{ + NSLog(@"=================="); +} +@end diff --git a/document/MixSdk.pdf b/document/MixSdk.pdf deleted file mode 100644 index 1d3f758..0000000 Binary files a/document/MixSdk.pdf and /dev/null differ diff --git a/document/MixSdk.md "b/document/MixSdk\346\216\245\345\217\243\346\226\207\346\241\243.md" similarity index 91% rename from document/MixSdk.md rename to "document/MixSdk\346\216\245\345\217\243\346\226\207\346\241\243.md" index 0bd9867..db043bd 100644 --- a/document/MixSdk.md +++ "b/document/MixSdk\346\216\245\345\217\243\346\226\207\346\241\243.md" @@ -2,9 +2,9 @@ ## 介绍 -- 当前版本:v1.0.0 +- 当前版本:v1.0.1 - 更新内容20240620: - 1. 初始版本 + 1. 语音数据支持pcm和sbc格式 ## 环境要求 @@ -161,7 +161,11 @@ public class MSStt { /// 发送语音数据,format pcm,采样率 16000 /// - Parameter data: 语音数据 - func sendVoice(data:Data) + public func sendVoice(pcmData: Data) + + /// 发送语音数据,format sbc,采样率 16000 + /// - Parameter data: 语音数据 + public func sendVoice(sbcData: Data) /// 事件回调 public var eventCallBack:MSSttEventCallBack? @@ -210,7 +214,25 @@ extension MSTts { -## 数据类型 +## 其他类型 + +### MSAudioConvert + +```swift +public class MSAudioConvert { + + /// sbc转pcm,一次性返回 + /// - Parameter data: sbc数据 + /// - Returns: pcm数据 + public static func sbcTopcm(_ data: Data) -> Data + + /// sbc转pcm,当数据量很大时,会拆分通过callBack多次回调返回 + /// - Parameters: + /// - data: sbc数据 + /// - callBack: 转回回调,会回调多次, + public static func sbcTopcm(_ data: Data, _ callBack: @escaping MixSdk.MSAudioConvertCallBack) +} +``` ### MixSdk