2014-01-13 2 views
0

내가 https://github.com/Lockerios/VideoFromImage에서 일부 기능을 다시하고이 게시물에서 논의하려고 해요 다음 pixelBufferFromCGImage에서 ASSETWriterInput for making Video from UIImages on Iphone IssuesCVPixelBufferCreate는

: 크기 방법은, 나는 지금까지 다음과 같은 한 :

options = {KCVPixelBufferCGImageCompatibilityKey => 1, KCVPixelBufferCGBitmapContextCompatibilityKey => 1} 

pxbuffer = nil 
status = CVPixelBufferCreate(KCFAllocatorDefault, imageSize.width, imageSize.height, KCVPixelFormatType_32ARGB, options, pxbuffer) 

여기서 imageSize.width == 640.0 및 imageSize.height == 1136.0

그러나 상태는 항상 -6661을 반환합니다. 왜 이런 일이 일어날 지 혼란 스럽네요. 이 방법으로 다른 곳에서 호출되는 다음

나는 pixelBufferFromCGImage 함수 내에서 이미지를 검사 할 때,이 유형 것으로 보인다
buffer = pixelBufferFromCGImage(array.objectAtIndex(0).CGImage, size:CGSizeMake(640, 1136)) 

"# < __NSCFType : 0x9ba7fa0>"나는 그 힘이 있는지 확실하지 않습니다 문제에 전혀 기여하지 못한다.

CVPixelBufferCreate 함수에 올바르지 않은 매개 변수를 https://developer.apple.com/library/ios/documentation/QuartzCore/Reference/CVConstantsRef/Reference/reference.html#//apple_ref/doc/uid/TP40010164-CH4g-BABIIDJJ에 전달하는 것처럼 보입니다.이 중 가장 가능성있는 것이 마지막 'pixelBufferOut'인수입니다.

이 문제에 대한 통찰력은 크게 감사하겠습니다. 나는 지금까지 내 코드의 전체와 함께 다음과 같은 요점을 가지고 https://gist.github.com/naderhen/8407730

고마워!

답변

1

마지막 매개 변수가 CVPixelBufferRef 개체에 대한 포인터로 생각됩니다. 당신은 이것을 시도 할 수 있습니다 :

pxbuffer = Pointer.new(:object) 

그러면, 나는 상태가 -6661 대신 0이됩니다.

그런 다음 버퍼에 액세스하려면 pxbuffer[0]

+0

완벽하게 작동했습니다. 굉장해! –