Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- NSInteger cropX0 = 100,
- cropY0 = 100,
- cropHeight = 100,
- cropWidth = 100,
- outWidth = 480,
- outHeight = 480;
- CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
- CVPixelBufferLockBaseAddress(imageBuffer,0);
- void *baseAddress = CVPixelBufferGetBaseAddress(imageBuffer);
- size_t bytesPerRow = CVPixelBufferGetBytesPerRow(imageBuffer);
- vImage_Buffer inBuff;
- inBuff.height = cropHeight;
- inBuff.width = cropWidth;
- inBuff.rowBytes = bytesPerRow;
- int startpos = cropY0*bytesPerRow+4*cropX0;
- inBuff.data = baseAddress+startpos;
- unsigned char *outImg= (unsigned char*)malloc(4*outWidth*outHeight);
- vImage_Buffer outBuff = {outImg, outHeight, outWidth, 4*outWidth};
- vImage_Error err = vImageScale_ARGB8888(&inBuff, &outBuff, NULL, 0);
- if (err != kvImageNoError) NSLog(@" error %ld", err);
- CVPixelBufferRef pixelBuffer;
- CVPixelBufferCreate(kCFAllocatorSystemDefault, 480, 480, kCVPixelFormatType_32BGRA, NULL, &pixelBuffer);
- CVPixelBufferLockBaseAddress( pixelBuffer, 0 );
- vImage_CGImageFormat format = {
- .bitsPerComponent = 8,
- .bitsPerPixel = 32,
- .bitmapInfo = kCGBitmapByteOrder32Little | kCGImageAlphaNoneSkipFirst, //BGRX8888
- .colorSpace = NULL, //sRGB
- };
- vImageBuffer_CopyToCVPixelBuffer(&outBuff,
- &format,
- pixelBuffer,
- NULL,
- NULL,
- kvImageNoFlags); // Here is the crash!
- CVPixelBufferUnlockBaseAddress( pixelBuffer, 0 );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement