"iplimage- > imageData = (char *) bufferBaseAddress;" .
"memcpy (iplimage- > imageData, (char *) bufferBaseAddress, iplimage- > imageSize);
:
-(IplImage *)createIplImageFromSampleBuffer:(CMSampleBufferRef)sampleBuffer {
IplImage *iplimage = 0;
if (sampleBuffer) {
CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
CVPixelBufferLockBaseAddress(imageBuffer, 0);
uint8_t *bufferBaseAddress = (uint8_t *)CVPixelBufferGetBaseAddressOfPlane(imageBuffer, 0);
size_t bufferWidth = CVPixelBufferGetWidth(imageBuffer);
size_t bufferHeight = CVPixelBufferGetHeight(imageBuffer);
if (bufferBaseAddress) {
iplimage = cvCreateImage(cvSize(bufferWidth, bufferHeight), IPL_DEPTH_8U, 4);
memcpy(iplimage->imageData, (char*)bufferBaseAddress, iplimage->imageSize);
}
CVPixelBufferUnlockBaseAddress(imageBuffer, 0);
}
else
DLog(@"No sampleBuffer!!");
return iplimage;
}