2
私のAVCaptureOutputがフレームをドロップする理由を理解しようとしています。ドキュメントからSwift - CMSampleBufferからkCMSampleBufferAttachmentKey_DroppedFrameReasonを取得する
kCMSampleBufferDroppedFrameReason_FrameWasLate // "FrameWasLate"
kCMSampleBufferDroppedFrameReason_OutOfBuffers // "OutOfBuffers"
kCMSampleBufferDroppedFrameReason_Discontinuity // "Discontinuity"
:captureOutput(_ output: AVCaptureOutput, didDrop sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection)
デリゲートメソッドでは、私は、フレームがドロップされた理由を説明する添付ファイルに(doc)
が含まれていなければならない理由は、これらのCFStringの一つとして期待されているCMSampleBuffer
を取得しますこの値を取得する方法は実際には分かりません。私はCMGetAttachment
を使用して試してみたが、これは別名UInt32
CMAttachmentMode
返します
func captureOutput(_ output: AVCaptureOutput, didDrop sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
var reason: CMAttachmentMode = 0
CMGetAttachment(sampleBuffer, kCMSampleBufferAttachmentKey_DroppedFrameReason, &reason)
print("reason \(reason)") // 1
}
と私は本当に、一定のCFStringにこのUInt32型を一致させる方法がわからない