From: liangzhenying <867174124@qq.com> Date: Thu, 22 Aug 2024 08:58:37 +0000 (+0800) Subject: adpcm转pcm解码成功 X-Git-Tag: 千寻适配d9~46 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=38a01a37b0aea0915cf7232e8890fa9b4595d2c5;p=mirrors%2FMouseSdk-MacOS.git adpcm转pcm解码成功 --- diff --git a/MouseSdk/AiMouseSdk/AiMouseSdk.xcodeproj/project.pbxproj b/MouseSdk/AiMouseSdk/AiMouseSdk.xcodeproj/project.pbxproj index 3c2c2c2..60051b2 100644 --- a/MouseSdk/AiMouseSdk/AiMouseSdk.xcodeproj/project.pbxproj +++ b/MouseSdk/AiMouseSdk/AiMouseSdk.xcodeproj/project.pbxproj @@ -192,13 +192,11 @@ 18AD83292BFB22DE009BDE3B /* AiSender.h in Headers */ = {isa = PBXBuildFile; fileRef = 18AD83272BFB22DE009BDE3B /* AiSender.h */; }; 18AD832A2BFB22DE009BDE3B /* AiSender.m in Sources */ = {isa = PBXBuildFile; fileRef = 18AD83282BFB22DE009BDE3B /* AiSender.m */; }; 18EF7AF72C7603E800AC5223 /* TlwRecordManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AE82C7603E800AC5223 /* TlwRecordManager.m */; }; - 18EF7AF82C7603E800AC5223 /* ADPCMConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AE92C7603E800AC5223 /* ADPCMConverter.m */; }; 18EF7AF92C7603E800AC5223 /* adpcm.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EF7AEA2C7603E800AC5223 /* adpcm.h */; }; 18EF7AFA2C7603E800AC5223 /* TlwMouseSdk.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AEB2C7603E800AC5223 /* TlwMouseSdk.m */; }; 18EF7AFB2C7603E800AC5223 /* TlwTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AEC2C7603E800AC5223 /* TlwTools.m */; }; 18EF7AFC2C7603E800AC5223 /* TlwConnectManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AED2C7603E800AC5223 /* TlwConnectManager.m */; }; 18EF7AFD2C7603E800AC5223 /* TlwAudioManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EF7AEE2C7603E800AC5223 /* TlwAudioManager.h */; }; - 18EF7AFE2C7603E800AC5223 /* ADPCMConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EF7AEF2C7603E800AC5223 /* ADPCMConverter.h */; }; 18EF7B002C7603E800AC5223 /* TlwRecordManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EF7AF12C7603E800AC5223 /* TlwRecordManager.h */; }; 18EF7B012C7603E800AC5223 /* adpcm.c in Sources */ = {isa = PBXBuildFile; fileRef = 18EF7AF22C7603E800AC5223 /* adpcm.c */; }; 18EF7B022C7603E800AC5223 /* TlwTools.h in Headers */ = {isa = PBXBuildFile; fileRef = 18EF7AF32C7603E800AC5223 /* TlwTools.h */; }; @@ -394,13 +392,11 @@ 18AD83272BFB22DE009BDE3B /* AiSender.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AiSender.h; sourceTree = ""; }; 18AD83282BFB22DE009BDE3B /* AiSender.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AiSender.m; sourceTree = ""; }; 18EF7AE82C7603E800AC5223 /* TlwRecordManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TlwRecordManager.m; sourceTree = ""; }; - 18EF7AE92C7603E800AC5223 /* ADPCMConverter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ADPCMConverter.m; sourceTree = ""; }; 18EF7AEA2C7603E800AC5223 /* adpcm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = adpcm.h; sourceTree = ""; }; 18EF7AEB2C7603E800AC5223 /* TlwMouseSdk.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TlwMouseSdk.m; sourceTree = ""; }; 18EF7AEC2C7603E800AC5223 /* TlwTools.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TlwTools.m; sourceTree = ""; }; 18EF7AED2C7603E800AC5223 /* TlwConnectManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TlwConnectManager.m; sourceTree = ""; }; 18EF7AEE2C7603E800AC5223 /* TlwAudioManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TlwAudioManager.h; sourceTree = ""; }; - 18EF7AEF2C7603E800AC5223 /* ADPCMConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ADPCMConverter.h; sourceTree = ""; }; 18EF7AF12C7603E800AC5223 /* TlwRecordManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TlwRecordManager.h; sourceTree = ""; }; 18EF7AF22C7603E800AC5223 /* adpcm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = adpcm.c; sourceTree = ""; }; 18EF7AF32C7603E800AC5223 /* TlwTools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TlwTools.h; sourceTree = ""; }; @@ -750,8 +746,6 @@ 18EF7AED2C7603E800AC5223 /* TlwConnectManager.m */, 18EF7AEE2C7603E800AC5223 /* TlwAudioManager.h */, 18EF7AF52C7603E800AC5223 /* TlwAudioManager.m */, - 18EF7AEF2C7603E800AC5223 /* ADPCMConverter.h */, - 18EF7AE92C7603E800AC5223 /* ADPCMConverter.m */, 18EF7AEA2C7603E800AC5223 /* adpcm.h */, 18EF7AF22C7603E800AC5223 /* adpcm.c */, ); @@ -899,7 +893,6 @@ 180E7B582BD7BD83008558E8 /* AiRecordManager.h in Headers */, 180E7CE12BD8FC4E008558E8 /* avdevice.h in Headers */, 180E7CE92BD8FC4E008558E8 /* defs.h in Headers */, - 18EF7AFE2C7603E800AC5223 /* ADPCMConverter.h in Headers */, 180E7C942BD8FC4E008558E8 /* stereo3d.h in Headers */, 180E7CDE2BD8FC4E008558E8 /* film_grain_params.h in Headers */, 180E7C8C2BD8FC4E008558E8 /* error.h in Headers */, @@ -998,7 +991,6 @@ 180E7BE32BD7BD84008558E8 /* AiFrameManager.m in Sources */, 180E7BE72BD7BD84008558E8 /* AiAudioManager.m in Sources */, 189C15872C05726600676A80 /* AiConnectManager.m in Sources */, - 18EF7AF82C7603E800AC5223 /* ADPCMConverter.m in Sources */, 18EF7AFB2C7603E800AC5223 /* TlwTools.m in Sources */, 18EF7AFA2C7603E800AC5223 /* TlwMouseSdk.m in Sources */, 180E7BDF2BD7BD84008558E8 /* AiMouseConfig.m in Sources */, diff --git a/MouseSdk/AiMouseSdk/TlwMouseSdk/ADPCMConverter.h b/MouseSdk/AiMouseSdk/TlwMouseSdk/ADPCMConverter.h deleted file mode 100644 index 0558f1e..0000000 --- a/MouseSdk/AiMouseSdk/TlwMouseSdk/ADPCMConverter.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// AiAdpcm2pcm.h -// AiMouseSdk -// -// Created by incar on 2024/8/20. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface ADPCMConverter : NSObject - -- (NSData *)convertADPCMToPCM:(NSData *)adpcmData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/MouseSdk/AiMouseSdk/TlwMouseSdk/ADPCMConverter.m b/MouseSdk/AiMouseSdk/TlwMouseSdk/ADPCMConverter.m deleted file mode 100644 index 42e25f3..0000000 --- a/MouseSdk/AiMouseSdk/TlwMouseSdk/ADPCMConverter.m +++ /dev/null @@ -1,92 +0,0 @@ - -#import "ADPCMConverter.h" -#import - - - -@implementation ADPCMConverter - -static const signed char idxtbl[] = { -1, -1, -1, -1, 2, 4, 6, 8, -1, -1, -1, -1, 2, 4, 6, 8}; -static const unsigned short steptbl[] = { - 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, - 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, - 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, - 130, 143, 157, 173, 190, 209, 230, 253, 279, 307, - 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, - 876, 963, 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, - 2272, 2499, 2749, 3024, 3327, 3660, 4026, 4428, 4871, 5358, - 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899, - 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 -}; - -#define NUM_OF_ORIG_SAMPLE 2 - -- (NSData *)convertADPCMToPCM:(NSData *)adpcmData { - NSMutableData *pcmData = [NSMutableData data]; - const signed short *source = (const signed short *)[adpcmData bytes]; - signed short *destination = (signed short *)[pcmData mutableBytes]; - int len = (int)[adpcmData length] / sizeof(signed short); - - int i; - // 假设 source 中的前两个元素分别是 predict 和 predict_idx - int predict = source[0]; - int predict_idx = source[1] & 0xff; - const unsigned char *pcode = (const unsigned char *)(source + NUM_OF_ORIG_SAMPLE); - unsigned char code; - code = *pcode++; - - for (i = 0; i < len; i++) { - if (1) { - int step = steptbl[predict_idx]; - - int diffq = step >> 3; - - if (code & 4) { - diffq = diffq + step; - } - step = step >> 1; - if (code & 2) { - diffq = diffq + step; - } - step = step >> 1; - if (code & 1) { - diffq = diffq + step; - } - - if (code & 8) { - predict = predict - diffq; - } else { - predict = predict + diffq; - } - - if (predict > 32767) { - predict = 32767; - } else if (predict < -32768) { - predict = -32768; - } - - predict_idx = predict_idx + idxtbl[code & 15]; - - if (predict_idx < 0) { - predict_idx = 0; - } else if (predict_idx > 88) { - predict_idx = 88; - } - - if (i & 1) { - code = *pcode++; - } else { - code = code >> 4; - } - } - - if (0 && i < NUM_OF_ORIG_SAMPLE) { - destination[i] = source[i]; - } else { - destination[i] = predict; - } - } - return pcmData; -} - -@end diff --git a/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwAudioManager.m b/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwAudioManager.m index 460f163..362a485 100644 --- a/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwAudioManager.m +++ b/MouseSdk/AiMouseSdk/TlwMouseSdk/TlwAudioManager.m @@ -7,7 +7,6 @@ #import "TlwAudioManager.h" #import -#import "ADPCMConverter.h" #import "adpcm.h" @interface TlwAudioManager () @@ -23,8 +22,6 @@ } - (void)receiveData:(NSData *)data{ -// [self.audioDecoder decodeSBCData:data]; - NSData *pcmData = [self convertADPCMDataToPCMData:data]; if(self.decodeCallBack)self.decodeCallBack(pcmData); } @@ -37,9 +34,9 @@ signed short *pd = (signed short *)malloc(adpcmLength * 4); - adpcm_to_pcm(ps, pd, adpcmLength / sizeof(signed short)*2); + adpcm_to_pcm(ps, pd, 248); - NSData *pcmData = [NSData dataWithBytes:pd length:adpcmLength * 4]; + NSData *pcmData = [NSData dataWithBytes:pd length:496]; free(ps); free(pd); diff --git a/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate b/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate index 4a419ff..cb8563d 100644 Binary files a/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate and b/MouseSdk/MouseSdk.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/MouseSdk/MouseSdk/ViewController.m b/MouseSdk/MouseSdk/ViewController.m index 3a0fec8..9eca1b8 100644 --- a/MouseSdk/MouseSdk/ViewController.m +++ b/MouseSdk/MouseSdk/ViewController.m @@ -57,8 +57,8 @@ [self presentViewControllerAsModalWindow:vc]; } - (void)tlwAction{ - [TlwHidManager shared]; - return; +// [TlwHidManager shared]; +// return; TlwVC *vc = [[TlwVC alloc] initWithNibName:nil bundle:nil]; [self presentViewControllerAsModalWindow:vc];