我有一個iOS應用程序直接從相機處理來自captureOutput的視頻幀。作爲處理的一部分,我在另一個源文件中調用了幾個C函數。我將UIImage轉換爲原始數據並快速傳遞 - 所有的處理都是在與視頻輸出相關的隊列上完成的。從Objective-C調用C函數 - 傳遞大量數據
這似乎工作正常,達到一定的程度。當我傳遞的數據變得太大,並且在C函數的初始化階段出現看似隨機的EXC_BAD_ACCESS錯誤時,似乎我達到了極限。 初始化我的意思是,聲明小靜態數組並將它們設置爲零等。
我想知道是否因爲傳遞大量數據而導致某種堆棧限制,所以嘗試使用其他鏈接器標記和-Wl,-stack_size來增加堆棧大小,但這似乎沒有什麼區別。
還有什麼我應該知道的以這種方式從非UI線程調用C函數?
對不起,有點泛泛,但我無法發佈代碼的具體細節,我正在尋找這種情況的一般建議和提示。我們在釋放內存方面存在問題,並在Objective-C的視頻處理方面使用了自動釋放池(因爲我們建議使用不同的線程) - 也許我們遇到了同樣的困難C代碼。有沒有辦法增加釋放/釋放在C中執行的頻率,還是我只是在追逐我的尾巴?
我會建議,以便它反映了從目標C.通過大的輸入到C函數時的問題,編輯您的帖子/問題的標題除此之外,我沒有任何建議,對不起:( –
聽起來不像C/Objective-C的本質的問題,這聽起來像你有不良的內存訪問某處 –
是的,我一直在追查任何內存問題和應用程序是穩定的內存(真實和虛擬)根據儀器和沒有收到內存警告。 – FiddleMeRagged