クラスの例を作成しました: https://github.com/ChoadPet/H.264-Decoding
構成を使用してアプリケーションをビルドすると、DEBUG
すべて正常に動作しますが、アーカイブRELEASE
すると、次の行でクラッシュします。
let status = VTDecompressionSessionDecodeFrame(session,
sampleBuffer: sampleBuffer,
flags: defaultDecodeFlags,
frameRefcon: nil,
infoFlagsOut: nil)
有効にすると、次のAddress Sanitizer
エラーが発生しました。
Thread 9: Use of deallocated memory
SUMMARY: AddressSanitizer: heap-use-after-free
(.../Frameworks/libclang_rt.asan_ios_dynamic.dylib:arm64+0x1a1f4) in wrap_memmove
...
(if you need more crash info, let me know)
それなし:Thread 12: EXC_BAD_ACCESS (code=1, address=0x107dd0020)
解放されたメモリがいくつかあり、メソッドでアクセスすることは理解していますが、16 進数のアドレスを見つけることができず、これがビルドVTDecompressionSessionDecodeFrame
でどのように完全に機能しているのかわかりません。
このメソッドの前に、とが正常に作成 (初期化) されています。DEBUG
session
sampleBuffer
DEBUG configuration
クラッシュの原因となる変更可能なプロジェクト設定はありますか? または、誰かがコードの問題について私に指摘できますか?
ありがとうございました!