Post

Replies

Boosts

Views

Activity

Reply to AV1 Hardware Decoding
i met the -12911 error which is the error code for kVTVideoDecoderMulfunctionErr, the subsequent logs shows it was caused by an err in allocating the memory for the ioSurface. default 13:16:36.985714+0800 videocodecd AppleAVD: AppleAVDWrapperFghrnDecoderStartSession: storage->miscPreferences 8 default 13:16:36.985774+0800 videocodecd AppleAVD: AppleAVDWrapperFghrnDecoderStartSession() codecType: Fghrn, encryptionScheme 6, 7680 x 4320, tryAllFrames = 0, session : 0xc54f1c020, built 01:13:29 Aug 8 2024 default 13:16:37.011217+0800 videocodecd AppleAVD: INFO: AppleAVDCreateDecodeDeviceInternal(): Allocating new AppleAVDCommandBuilder default 13:16:37.011267+0800 videocodecd AppleAVD: CAVDAvxDecoder(): set av1 dual vp mode as 0 default 13:16:37.011369+0800 videocodecd AppleAVD: INFO: Av1 decoder does not support kVASetSliceHeaderThreshold, command has been ignored default 13:16:37.011811+0800 videocodecd AppleAVD: ERROR: mapAVDMemory(): failed error: -536870212 default 13:16:37.011850+0800 videocodecd AppleAVD: VAMapPixelBuffer(): error allocating surface default 13:16:37.011862+0800 videocodecd AppleAVD: createDecoder(): VAMapPixelBuffer failed for input buf IOSurface, err=-536870212 default 13:16:37.011890+0800 videocodecd AppleAVD: createDecoder(): error -536870212 and decoder is 0xc55400000 But that error is caused by decoding a 8K AV1 error. when decoding a 4K video the error is gone.
Nov ’24
Reply to Microphone crashing when change input source
Here is the link of a answer from stack overflow. Change Audio input programmatically doesn't change Audio engine input AVFoundation You crashed because after input source changed, let input = avAudioEngine.inputNode does not update to new input source. Therefore, just re-create the avAudioEngine. audioEngine = AVAudioEngine()
Jun ’23
Reply to Help in debugging an Audio Server Plugin
Updated my successful debug setup, hoping to help someone sometime. With Activity Monitor opened, one important thing to do is toggle the All Process option. Then you will see your target process. The user of this process is _coreaudiod. Once you get the PID, you can attach it to the process with its PID. No need to kick restart the coreaudiod service.
Aug ’22
Reply to Only Apple kexts may link against com.apple.kpi.private
Yes, it's possible, but with several conditions: Extension 'com.foo.bar' has invalid properties: [Linking com.apple.kpi.private requires an Apple kext (ANY OF: [ALL OF: [ANY OF: [Property CFBundleGetInfoString must have valid Apple copyright string, Property NSHumanReadableCopyright must have valid Apple copyright string], Property 'CFBundleIdentifier' should have type String with prefix: com.apple], Properties under OSBundleLibraries must satisfy: [Property 'com.apple.kpi.private' should be absent]])]" UserInfo={NSLocalizedDescription=Validating extension failed: Kext com.banana.ntfs-mod v1.1.1 in executable kext bundle com.banana.ntfs-mod at ***: You should have "com.apple" prefixed bundle id You should have "Copyright © 2002-2015 Apple Inc. All rights reserved." copyright string in 'CFBundleGetInfoString' key of your 'Info.plist' Finally, you can link against private KPIs in your info.plist by adding "com.apple.kpi.private" in OSBundleLibraries. But if you try to load your kext, you will get an error from kernelmanagerd saying, "kernelmanagerd apple-prefixed bundle found without explicit auxiliary collection load requirement: Kext com.foo.barv1.1.1 in executable kext bundle com.foo.bar at /Library/Extensions/***.kext". This means your kext is not been approved by the user. Apple-prefixed kext will not trigger a user consent as 3rd party kext does.
Jul ’22