【问题标题】:CVPixelBufferCreate in RubyMotion在 RubyMotion 中创建 CVPixelBuffer
【发布时间】:2014-02-01 18:28:09
【问题描述】:

我正在尝试从 https://github.com/Lockerios/VideoFromImage 重新创建一些功能,并在这篇文章中进行了讨论:ASSETWriterInput for making Video from UIImages on Iphone Issues

在 pixelBufferFromCGImage:size 方法中,到目前为止,我有以下内容:

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。我有点困惑为什么会发生这种情况。此方法正在其他地方调用,如下所示:

buffer = pixelBufferFromCGImage(array.objectAtIndex(0).CGImage, size:CGSizeMake(640, 1136))

当我从 pixelBufferFromCGImage 函数中检查图像时,它似乎属于“#<0x9ba7fa0>

    标签: ios rubymotion avassetwriter core-video


    【解决方案1】:

    看起来最后一个参数应该是指向CVPixelBufferRef 对象的指针。你可以试试这个:

    pxbuffer = Pointer.new(:object)
    

    这样做,我得到的状态是 0 而不是 -6661。

    然后,要访问缓冲区,请使用pxbuffer[0]

    【讨论】:

      猜你喜欢
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 2016-02-18
      • 2016-03-08
      • 1970-01-01
      • 2015-10-27
      • 2016-09-23
      • 1970-01-01
      相关资源
      最近更新 更多