应用程序从后台更改状态到前台后,CVBuffer发布崩溃

时间:2013-11-11 14:56:09

标签: ios objective-c background

我正在使用以下代码,以便在给定图像数组的情况下创建视频。 一切正常。代码在串行队列上运行。 当状态应用程序从后台更改为前台时,此代码在CVBufferRelease(缓冲区)上崩溃。 我还验证了缓冲区没有指向null。

知道如何解决这个问题吗?

UIImage *image = [UIImage imageWithData:imgFrameData];
CVPixelBufferRef buffer = NULL;
buffer = [self newPixelBufferFromCGImage:[image CGImage] andSize:CGSizeMake(frameSize, frameSize)];

BOOL append_ok = NO;

while (!append_ok){
    if (adaptor.assetWriterInput.readyForMoreMediaData)
    {

      CMTime frameTime = CMTimeMake(i*timeBetweenFrame,(int32_t) TIMESCALE);
      CMTimeShow(frameTime); 
      append_ok = [adaptor appendPixelBuffer:buffer withPresentationTime:frameTime];
      if(buffer)
      {          
          CVBufferRelease(buffer);              
      }

      [NSThread sleepForTimeInterval:0.05];
    }
    else
    {
       [NSThread sleepForTimeInterval:0.1];
    }
  }

0 个答案:

没有答案