Есть ли в любом случае функция обратного вызова ОС для делегата
- (void) captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)psampleBuffer fromConnection:(AVCaptureConnection *)pconnection
в фоновом потоке вместо основного потока?Проблема в том, что время, которое требуется для копирования данных, влияет на пользовательский интерфейс.Это, кажется, должно быть сделано в главном потоке, так как captureOutput, кажется, пропал, если пытался скопировать его в фоновом потоке и т. Д. ... Я что-то здесь упускаю?
CMFormatDescriptionRef format;
format = CMSampleBufferGetFormatDescription(sampleBuffer);
bufSize = CMSampleBufferGetNumSamples(sampleBuffer);
sampleSize = CMSampleBufferGetSampleSize(sampleBuffer,0);
sampleLength = CMSampleBufferGetTotalSampleSize(sampleBuffer);
blockbuff = CMSampleBufferGetDataBuffer(sampleBuffer);
CMBlockBufferCopyDataBytes(blockbuff, 0, tocopy*_depth, buffInUse+(offset*2));