小编cvu*_*cvu的帖子

从YUV创建CVPixelBuffer并支持IOSurface

所以我从网络回调(voip app)获得3个独立阵列中的原始YUV数据.根据我的理解,你不能CVPixelBufferCreateWithPlanarBytes根据这里创建IOSurface支持的像素缓冲区

重要提示:您不能将CVPixelBufferCreateWithBytes()或CVPixelBufferCreateWithPlanarBytes()与kCVPixelBufferIOSurfacePropertiesKey一起使用.调用CVPixelBufferCreateWithBytes()或CVPixelBufferCreateWithPlanarBytes()将导致CVPixelBuffers不是IOSurface支持的

因此,您必须创建它CVPixelBufferCreate,但是如何将数据从回调传输回CVPixelBufferRef您创建的?

- (void)videoCallBack(uint8_t *yPlane, uint8_t *uPlane, uint8_t *vPlane, size_t width, size_t height, size_t stride yStride,
                      size_t uStride, size_t vStride)
    NSDictionary *pixelAttributes = @{(id)kCVPixelBufferIOSurfacePropertiesKey : @{}};
    CVPixelBufferRef pixelBuffer = NULL;
    CVReturn result = CVPixelBufferCreate(kCFAllocatorDefault,
                                          width,
                                          height,
                                          kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange,
                                          (__bridge CFDictionaryRef)(pixelAttributes),
                                          &pixelBuffer);
Run Code Online (Sandbox Code Playgroud)

我不确定之后该做什么?最终我想把它变成一个CIImage,然后我可以使用我的GLKView来渲染视频.人们如何在创建数据时将数据"放入"缓冲区?

video opengl-es objective-c ios glkit

8
推荐指数
1
解决办法
6997
查看次数

未定义的方法'反向'为500

我刚刚学习红宝石,这似乎是我在这里做的一个容易的错误吗?

def palindromic(str)
    str.to_s
    if str.reverse == str
        puts "it is a palindromic number!"
    end
end

palindromic(500)
Run Code Online (Sandbox Code Playgroud)

相反,我得到一个错误

Project4.rb:5:in `palindromic': undefined method `reverse' for 500:Fixnum (NoMet
hodError)
        from Project4.rb:10:in `<main>'
Run Code Online (Sandbox Code Playgroud)

ruby

1
推荐指数
1
解决办法
775
查看次数

(永远运行)找到超过500个因子的三角形#

我目前正在研究peuler问题.我认为我有正确的代码,因为我用示例中提供的代码测试了它.但是,当我尝试运行它以找到超过500个因子的第一个三角形数字时,它会保持运行超过15分钟.但是当我尝试找到超过100个因子的第一个三角形数字时,它会在一分钟内找到它.

请看下面:

我的问题是我如何才能更快地计算出来?因为好像被卡住了?

#Project 12 #http://projecteuler.net/problem=12

def triangle(x) #finds the (x)st triangular number
    x=(1..x)
    return x.inject(:+)
end

def factors(x) #calculates how many factors (x) has
    factors =[]
    range=(1..x)
    range.each {|num|
    if x%num==0 
        factors << num
    end
    }
    return factors.length
    end 

def project12(x) #finds the first triangular number that has over (x) factors
i=1
    until factors(triangle(i)) > x
        i += 1
    end
return triangle(i)
end

print project12(500)
Run Code Online (Sandbox Code Playgroud)

ruby

0
推荐指数
1
解决办法
115
查看次数

标签 统计

ruby ×2

glkit ×1

ios ×1

objective-c ×1

opengl-es ×1

video ×1