- (void)dumpYuvPixelBuffer: (CVImageBufferRef)pixelBuffer {
static int flag = 0;
if (flag == 0) {
flag = 1;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString * filePath = [documentsDirectory stringByAppendingPathComponent:@"/dump.yuv"];
CVPixelBufferLockBaseAddress(pixelBuffer, 0);
size_t count = CVPixelBufferGetPlaneCount(pixelBuffer);
NSMutableData* data = [NSMutableData data];
for (int i = 0; i < count; i++) {
size_t width = CVPixelBufferGetWidthOfPlane(pixelBuffer, i);
size_t height = CVPixelBufferGetHeightOfPlane(pixelBuffer, i);
size_t bytesPerRow = CVPixelBufferGetBytesPerRowOfPlane(pixelBuffer, i);
void* buf = CVPixelBufferGetBaseAddressOfPlane(pixelBuffer, i);
NSData *Data = [NSData dataWithBytes:buf length:bytesPerRow*height];
[data appendData:Data];
}
[data writeToFile:filePath atomically:YES];
CVPixelBufferUnlockBaseAddress(pixelBuffer, 0);
}
}