Advertisement
Guest User

Untitled

a guest
Mar 4th, 2015
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. NSInteger cropX0 = 100,
  2. cropY0 = 100,
  3. cropHeight = 100,
  4. cropWidth = 100,
  5. outWidth = 480,
  6. outHeight = 480;
  7.  
  8. CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
  9. CVPixelBufferLockBaseAddress(imageBuffer,0);
  10. void *baseAddress = CVPixelBufferGetBaseAddress(imageBuffer);
  11. size_t bytesPerRow = CVPixelBufferGetBytesPerRow(imageBuffer);
  12.  
  13. vImage_Buffer inBuff;
  14. inBuff.height = cropHeight;
  15. inBuff.width = cropWidth;
  16. inBuff.rowBytes = bytesPerRow;
  17.  
  18. int startpos = cropY0*bytesPerRow+4*cropX0;
  19. inBuff.data = baseAddress+startpos;
  20.  
  21. unsigned char *outImg= (unsigned char*)malloc(4*outWidth*outHeight);
  22. vImage_Buffer outBuff = {outImg, outHeight, outWidth, 4*outWidth};
  23.  
  24. vImage_Error err = vImageScale_ARGB8888(&inBuff, &outBuff, NULL, 0);
  25. if (err != kvImageNoError) NSLog(@" error %ld", err);
  26.  
  27. CVPixelBufferRef pixelBuffer;
  28. CVPixelBufferCreate(kCFAllocatorSystemDefault, 480, 480, kCVPixelFormatType_32BGRA, NULL, &pixelBuffer);
  29.  
  30. CVPixelBufferLockBaseAddress( pixelBuffer, 0 );
  31.  
  32. vImage_CGImageFormat format = {
  33. .bitsPerComponent = 8,
  34. .bitsPerPixel = 32,
  35. .bitmapInfo = kCGBitmapByteOrder32Little | kCGImageAlphaNoneSkipFirst, //BGRX8888
  36. .colorSpace = NULL, //sRGB
  37. };
  38.  
  39. vImageBuffer_CopyToCVPixelBuffer(&outBuff,
  40. &format,
  41. pixelBuffer,
  42. NULL,
  43. NULL,
  44. kvImageNoFlags); // Here is the crash!
  45.  
  46.  
  47. CVPixelBufferUnlockBaseAddress( pixelBuffer, 0 );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement